summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-02-02 19:58:29 -0500
committerMichael Mann <mmann78@netscape.net>2015-02-03 13:03:32 +0000
commitb63599762468e4cf1783419a5556377604d344bb (patch)
treef77790ecea3d83e6552dcd68420ab5035d8adede
parente9429732ff91cbbbaead63b643870da91ef415bd (diff)
downloadwireshark-b63599762468e4cf1783419a5556377604d344bb.tar.gz
Convert val_to_str_ext -> val_to_str_ext_wmem for calls that don't have valid packet scope (GUI).
val_to_str_ext now officially uses wmem_packet_scope(). Removed const from val_to_str[_ext]_wmem return value since it's not really constant. Created utility functions in qt_ui_utils.h to help with the new memory management for its GUI. Change-Id: Idf2ce4a4ce78d628b2269ad23a3a48fbfc9c077c Reviewed-on: https://code.wireshark.org/review/6926 Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--epan/value_string.c10
-rw-r--r--epan/value_string.h4
-rw-r--r--ui/cli/tap-afpstat.c5
-rw-r--r--ui/cli/tap-rtp.c8
-rw-r--r--ui/cli/tap-scsistat.c7
-rw-r--r--ui/cli/tap-smbstat.c14
-rw-r--r--ui/gtk/afp_stat.c4
-rw-r--r--ui/gtk/rtp_stream_dlg.c28
-rw-r--r--ui/gtk/scsi_stat.c4
-rw-r--r--ui/gtk/smb2_stat.c4
-rw-r--r--ui/gtk/smb_stat.c12
-rw-r--r--ui/qt/qt_ui_utils.cpp20
-rw-r--r--ui/qt/qt_ui_utils.h21
-rw-r--r--ui/qt/rtp_stream_dialog.cpp2
-rw-r--r--ui/voip_calls.c48
15 files changed, 128 insertions, 63 deletions
diff --git a/epan/value_string.c b/epan/value_string.c
index e4879da69e..d5b8b64618 100644
--- a/epan/value_string.c
+++ b/epan/value_string.c
@@ -50,7 +50,7 @@ val_to_str(const guint32 val, const value_string *vs, const char *fmt)
return ep_strdup_printf(fmt, val);
}
-const gchar *
+gchar *
val_to_str_wmem(wmem_allocator_t *scope, const guint32 val, const value_string *vs, const char *fmt)
{
const gchar *ret;
@@ -59,7 +59,7 @@ val_to_str_wmem(wmem_allocator_t *scope, const guint32 val, const value_string *
ret = try_val_to_str(val, vs);
if (ret != NULL)
- return ret;
+ return wmem_strdup(scope, ret);
return wmem_strdup_printf(scope, fmt, val);
}
@@ -326,10 +326,10 @@ val_to_str_ext(const guint32 val, value_string_ext *vse, const char *fmt)
if (ret != NULL)
return ret;
- return ep_strdup_printf(fmt, val);
+ return wmem_strdup_printf(wmem_packet_scope(), fmt, val);
}
-const gchar *
+gchar *
val_to_str_ext_wmem(wmem_allocator_t *scope, const guint32 val, value_string_ext *vse, const char *fmt)
{
const gchar *ret;
@@ -338,7 +338,7 @@ val_to_str_ext_wmem(wmem_allocator_t *scope, const guint32 val, value_string_ext
ret = try_val_to_str_ext(val, vse);
if (ret != NULL)
- return ret;
+ return wmem_strdup(scope, ret);
return wmem_strdup_printf(scope, fmt, val);
}
diff --git a/epan/value_string.h b/epan/value_string.h
index 746225a4a7..44d22cacc9 100644
--- a/epan/value_string.h
+++ b/epan/value_string.h
@@ -118,7 +118,7 @@ val_to_str(const guint32 val, const value_string *vs, const char *fmt)
G_GNUC_PRINTF(3, 0);
WS_DLL_PUBLIC
-const gchar *
+gchar *
val_to_str_wmem(wmem_allocator_t *scope, const guint32 val, const value_string *vs, const char *fmt)
G_GNUC_PRINTF(4, 0);
@@ -205,7 +205,7 @@ val_to_str_ext(const guint32 val, value_string_ext *vse, const char *fmt)
G_GNUC_PRINTF(3, 0);
WS_DLL_PUBLIC
-const gchar *
+gchar *
val_to_str_ext_wmem(wmem_allocator_t *scope, const guint32 val, value_string_ext *vse, const char *fmt)
G_GNUC_PRINTF(4, 0);
diff --git a/ui/cli/tap-afpstat.c b/ui/cli/tap-afpstat.c
index 9e5b962364..a146223690 100644
--- a/ui/cli/tap-afpstat.c
+++ b/ui/cli/tap-afpstat.c
@@ -74,6 +74,7 @@ afpstat_draw(void *pss)
afpstat_t *ss = (afpstat_t *)pss;
guint32 i;
guint64 td;
+ gchar* tmp_str;
printf("\n");
printf("===================================================================\n");
printf("AFP SRT Statistics:\n");
@@ -94,13 +95,15 @@ afpstat_draw(void *pss)
td = 0;
}
+ tmp_str = val_to_str_ext_wmem(NULL, i, &CommandCode_vals_ext, "Unknown (%u)");
printf("%-25s %6d %3d.%05d %3d.%05d %3" G_GINT64_MODIFIER "u.%05" G_GINT64_MODIFIER "u\n",
- val_to_str_ext(i, &CommandCode_vals_ext, "Unknown (%u)"),
+ tmp_str,
ss->proc[i].num,
(int)ss->proc[i].min.secs, ss->proc[i].min.nsecs/10000,
(int)ss->proc[i].max.secs, ss->proc[i].max.nsecs/10000,
td/100000, td%100000
);
+ wmem_free(NULL, tmp_str);
}
printf("===================================================================\n");
}
diff --git a/ui/cli/tap-rtp.c b/ui/cli/tap-rtp.c
index 135750f523..878d4368c9 100644
--- a/ui/cli/tap-rtp.c
+++ b/ui/cli/tap-rtp.c
@@ -84,14 +84,13 @@ rtp_streams_stat_draw(void *arg _U_)
/* payload type */
if (strinfo->payload_type > 95) {
if (strinfo->payload_type_name != NULL) {
- payload_type = g_strdup(strinfo->payload_type_name);
+ payload_type = wmem_strdup(NULL, strinfo->payload_type_name);
}else{
- payload_type = g_strdup_printf("Unknown(%u)", strinfo->payload_type);
+ payload_type = wmem_strdup_printf(NULL, "Unknown(%u)", strinfo->payload_type);
}
}else{
- payload_type = g_strdup(val_to_str_ext(strinfo->payload_type, &rtp_payload_type_vals_ext,
- "Unknown (%u)"));
+ payload_type = val_to_str_ext_wmem(NULL, strinfo->payload_type, &rtp_payload_type_vals_ext, "Unknown (%u)");
}
/* packet count, lost packets */
@@ -125,6 +124,7 @@ rtp_streams_stat_draw(void *arg _U_)
g_free(payload_type);
wmem_free(NULL, src_addr);
wmem_free(NULL, dst_addr);
+ wmem_free(NULL, payload_type);
}
printf("==============================================================\n");
diff --git a/ui/cli/tap-scsistat.c b/ui/cli/tap-scsistat.c
index 8684861340..8160e4e899 100644
--- a/ui/cli/tap-scsistat.c
+++ b/ui/cli/tap-scsistat.c
@@ -41,7 +41,7 @@ static guint8 scsi_program = 0;
/* used to keep track of statistics for a specific procedure */
typedef struct _scsi_procedure_t {
- const char *proc;
+ char *proc;
int num;
nstime_t min;
nstime_t max;
@@ -226,7 +226,7 @@ scsistat_init(const char *opt_arg, void* userdata _U_)
}
rs->procedures = g_new(scsi_procedure_t,MAX_PROCEDURES);
for(i=0; i < MAX_PROCEDURES; i++) {
- rs->procedures[i].proc = val_to_str_ext(i, rs->cdbnames_ext, "Unknown-0x%02x");
+ rs->procedures[i].proc = val_to_str_ext_wmem(NULL, i, rs->cdbnames_ext, "Unknown-0x%02x");
rs->procedures[i].num = 0;
rs->procedures[i].min.secs = 0;
rs->procedures[i].min.nsecs = 0;
@@ -238,6 +238,9 @@ scsistat_init(const char *opt_arg, void* userdata _U_)
error_string = register_tap_listener("scsi", rs, filter, 0, scsistat_reset, scsistat_packet, scsistat_draw);
if (error_string) {
/* error, we failed to attach to the tap. clean up */
+ for(i=0; i < MAX_PROCEDURES; i++) {
+ wmem_free(NULL, rs->procedures[i].proc);
+ }
g_free(rs->procedures);
g_free(rs->filter);
g_free(rs);
diff --git a/ui/cli/tap-smbstat.c b/ui/cli/tap-smbstat.c
index 00d75fb79f..6142d28755 100644
--- a/ui/cli/tap-smbstat.c
+++ b/ui/cli/tap-smbstat.c
@@ -100,6 +100,8 @@ smbstat_draw(void *pss)
smbstat_t *ss = (smbstat_t *)pss;
guint32 i;
guint64 td;
+ gchar* tmp_str;
+
printf("\n");
printf("=================================================================\n");
printf("SMB SRT Statistics:\n");
@@ -126,13 +128,15 @@ smbstat_draw(void *pss)
td = ((td / ss->proc[i].num) + 500) / 1000;
+ tmp_str = val_to_str_ext_wmem(NULL, i, &smb_cmd_vals_ext, "Unknown (0x%02x)");
printf("%-25s %6d %3d.%06d %3d.%06d %3" G_GINT64_MODIFIER "u.%06" G_GINT64_MODIFIER "u\n",
- val_to_str_ext(i, &smb_cmd_vals_ext, "Unknown (0x%02x)"),
+ tmp_str,
ss->proc[i].num,
(int)(ss->proc[i].min.secs), (ss->proc[i].min.nsecs+500)/1000,
(int)(ss->proc[i].max.secs), (ss->proc[i].max.nsecs+500)/1000,
td/MICROSECS_PER_SEC, td%MICROSECS_PER_SEC
);
+ wmem_free(NULL, tmp_str);
}
printf("\n");
@@ -147,13 +151,15 @@ smbstat_draw(void *pss)
td = ((guint64)(ss->trans2[i].tot.secs)) * NANOSECS_PER_SEC + ss->trans2[i].tot.nsecs;
td = ((td / ss->trans2[i].num) + 500) / 1000;
+ tmp_str = val_to_str_ext_wmem(NULL, i, &trans2_cmd_vals_ext, "Unknown (0x%02x)");
printf("%-25s %6d %3d.%06d %3d.%06d %3" G_GINT64_MODIFIER "u.%06" G_GINT64_MODIFIER "u\n",
- val_to_str_ext(i, &trans2_cmd_vals_ext, "Unknown (0x%02x)"),
+ tmp_str,
ss->trans2[i].num,
(int)(ss->trans2[i].min.secs), (ss->trans2[i].min.nsecs+500)/1000,
(int)(ss->trans2[i].max.secs), (ss->trans2[i].max.nsecs+500)/1000,
td/MICROSECS_PER_SEC, td%MICROSECS_PER_SEC
);
+ wmem_free(NULL, tmp_str);
}
printf("\n");
@@ -167,13 +173,15 @@ smbstat_draw(void *pss)
td = ((guint64)(ss->nt_trans[i].tot.secs)) * NANOSECS_PER_SEC + ss->nt_trans[i].tot.nsecs;
td = ((td / ss->nt_trans[i].num) + 500) / 1000;
+ tmp_str = val_to_str_ext_wmem(NULL, i, &nt_cmd_vals_ext, "Unknown (0x%02x)");
printf("%-25s %6d %3d.%06d %3d.%06d %3" G_GINT64_MODIFIER "u.%06" G_GINT64_MODIFIER "u\n",
- val_to_str_ext(i, &nt_cmd_vals_ext, "Unknown (0x%02x)"),
+ tmp_str,
ss->nt_trans[i].num,
(int)(ss->nt_trans[i].min.secs), (ss->nt_trans[i].min.nsecs+500)/1000,
(int)(ss->nt_trans[i].max.secs), (ss->nt_trans[i].max.nsecs+500)/1000,
td/MICROSECS_PER_SEC, td%MICROSECS_PER_SEC
);
+ wmem_free(NULL, tmp_str);
}
printf("=================================================================\n");
diff --git a/ui/gtk/afp_stat.c b/ui/gtk/afp_stat.c
index c87cf6559c..84ada0e687 100644
--- a/ui/gtk/afp_stat.c
+++ b/ui/gtk/afp_stat.c
@@ -151,7 +151,9 @@ gtk_afpstat_init(const char *opt_arg, void *userdata _U_)
init_srt_table(&ss->afp_srt_table, 256, vbox, "afp.command");
for(i=0;i<256;i++){
- init_srt_table_row(&ss->afp_srt_table, i, val_to_str_ext(i, &CommandCode_vals_ext, "Unknown(%u)"));
+ gchar* tmp_str = val_to_str_ext_wmem(NULL, i, &CommandCode_vals_ext, "Unknown(%u)");
+ init_srt_table_row(&ss->afp_srt_table, i, tmp_str);
+ wmem_free(NULL, tmp_str);
}
diff --git a/ui/gtk/rtp_stream_dlg.c b/ui/gtk/rtp_stream_dlg.c
index 89a8b9dee2..51eeba18b7 100644
--- a/ui/gtk/rtp_stream_dlg.c
+++ b/ui/gtk/rtp_stream_dlg.c
@@ -691,7 +691,7 @@ add_to_list_store(rtp_stream_info_t* strinfo)
double perc;
int i;
char *savelocale;
- char *src_addr, *dst_addr;
+ gchar *tmp_str;
/* save the current locale */
savelocale = g_strdup(setlocale(LC_NUMERIC, NULL));
@@ -699,19 +699,17 @@ add_to_list_store(rtp_stream_info_t* strinfo)
in g_snprintf("%f") functions */
setlocale(LC_NUMERIC, "C");
- src_addr = (char*)address_to_display(NULL, &(strinfo->src_addr));
- dst_addr = (char*)address_to_display(NULL, &(strinfo->dest_addr));
-
- data[0] = g_strdup(src_addr);
+ data[0] = (gchar*)address_to_display(NULL, &(strinfo->src_addr));
data[1] = NULL;
- data[2] = g_strdup(dst_addr);
+ data[2] = (gchar*)address_to_display(NULL, &(strinfo->dest_addr));
data[3] = NULL;
- data[4] = g_strdup_printf("0x%X", strinfo->ssrc);
+ data[4] = wmem_strdup_printf(NULL, "0x%X", strinfo->ssrc);
if (strinfo->payload_type_name != NULL) {
- data[5] = g_strdup(strinfo->payload_type_name);
+ data[5] = wmem_strdup(NULL, strinfo->payload_type_name);
} else {
- data[5] = g_strdup(val_to_str_ext(strinfo->payload_type, &rtp_payload_type_short_vals_ext,
- "Unknown (%u)"));
+ tmp_str = val_to_str_ext_wmem(NULL, strinfo->payload_type, &rtp_payload_type_short_vals_ext, "Unknown (%u)");
+ data[5] = wmem_strdup(NULL, tmp_str);
+ wmem_free(NULL, tmp_str);
}
data[6] = NULL;
@@ -723,14 +721,14 @@ add_to_list_store(rtp_stream_info_t* strinfo)
} else {
perc = 0;
}
- data[7] = g_strdup_printf("%d (%.1f%%)", lost, perc);
+ data[7] = wmem_strdup_printf(NULL, "%d (%.1f%%)", lost, perc);
data[8] = NULL;
data[9] = NULL;
data[10] = NULL;
if (strinfo->problem)
- data[11] = g_strdup("X");
+ data[11] = wmem_strdup(NULL, "X");
else
- data[11] = g_strdup("");
+ data[11] = wmem_strdup(NULL, "");
/* restore previous locale setting */
setlocale(LC_NUMERIC, savelocale);
@@ -757,9 +755,7 @@ add_to_list_store(rtp_stream_info_t* strinfo)
-1);
for (i = 0; i < NUM_COLS-1; i++)
- g_free(data[i]);
- wmem_free(NULL, src_addr);
- wmem_free(NULL, dst_addr);
+ wmem_free(NULL, data[i]);
/* Update the top label with the number of detected streams */
g_snprintf(label_text, sizeof(label_text),
diff --git a/ui/gtk/scsi_stat.c b/ui/gtk/scsi_stat.c
index 953d5cd4ae..7d8f2a469e 100644
--- a/ui/gtk/scsi_stat.c
+++ b/ui/gtk/scsi_stat.c
@@ -235,7 +235,9 @@ gtk_scsistat_init(const char *opt_arg, void* userdata _U_)
init_srt_table(&rs->srt_table, 256, vbox, hf_name);
for(i=0; i<256; i++){
- init_srt_table_row(&rs->srt_table, i, val_to_str_ext(i, rs->cdbnames_ext, "Unknown-0x%02x"));
+ gchar* tmp_str = val_to_str_ext_wmem(NULL, i, rs->cdbnames_ext, "Unknown-0x%02x");
+ init_srt_table_row(&rs->srt_table, i, tmp_str);
+ wmem_free(NULL, tmp_str);
}
diff --git a/ui/gtk/smb2_stat.c b/ui/gtk/smb2_stat.c
index a3bf8a5812..d625d1ac9a 100644
--- a/ui/gtk/smb2_stat.c
+++ b/ui/gtk/smb2_stat.c
@@ -162,7 +162,9 @@ gtk_smb2stat_init(const char *opt_arg, void *userdata _U_)
init_srt_table(&ss->smb2_srt_table, 256, vbox, "smb2.cmd");
for(i=0;i<256;i++){
- init_srt_table_row(&ss->smb2_srt_table, i, val_to_str_ext(i, &smb2_cmd_vals_ext, "Unknown(0x%02x)"));
+ gchar* tmp_str = val_to_str_ext_wmem(NULL, i, &smb2_cmd_vals_ext, "Unknown(0x%02x)");
+ init_srt_table_row(&ss->smb2_srt_table, i, tmp_str);
+ wmem_free(NULL, tmp_str);
}
diff --git a/ui/gtk/smb_stat.c b/ui/gtk/smb_stat.c
index 6abd6a5d7f..fa7b173aee 100644
--- a/ui/gtk/smb_stat.c
+++ b/ui/gtk/smb_stat.c
@@ -175,7 +175,9 @@ gtk_smbstat_init(const char *opt_arg, void *userdata _U_)
init_srt_table(&ss->smb_srt_table, 256, vbox, "smb.cmd");
for(i=0;i<256;i++){
- init_srt_table_row(&ss->smb_srt_table, i, val_to_str_ext(i, &smb_cmd_vals_ext, "Unknown(0x%02x)"));
+ gchar* tmp_str = val_to_str_ext_wmem(NULL, i, &smb_cmd_vals_ext, "Unknown(0x%02x)");
+ init_srt_table_row(&ss->smb_srt_table, i, tmp_str);
+ wmem_free(NULL, tmp_str);
}
@@ -183,7 +185,9 @@ gtk_smbstat_init(const char *opt_arg, void *userdata _U_)
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
init_srt_table(&ss->trans2_srt_table, 256, vbox, "smb.trans2.cmd");
for(i=0;i<256;i++){
- init_srt_table_row(&ss->trans2_srt_table, i, val_to_str_ext(i, &trans2_cmd_vals_ext, "Unknown(0x%02x)"));
+ gchar* tmp_str = val_to_str_ext_wmem(NULL, i, &trans2_cmd_vals_ext, "Unknown(0x%02x)");
+ init_srt_table_row(&ss->trans2_srt_table, i, tmp_str);
+ wmem_free(NULL, tmp_str);
}
@@ -191,7 +195,9 @@ gtk_smbstat_init(const char *opt_arg, void *userdata _U_)
gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
init_srt_table(&ss->nt_trans_srt_table, 256, vbox, "smb.nt.function");
for(i=0;i<256;i++){
- init_srt_table_row(&ss->nt_trans_srt_table, i, val_to_str_ext(i, &nt_cmd_vals_ext, "Unknown(0x%02x)"));
+ gchar* tmp_str = val_to_str_ext_wmem(NULL, i, &nt_cmd_vals_ext, "Unknown(0x%02x)");
+ init_srt_table_row(&ss->nt_trans_srt_table, i, tmp_str);
+ wmem_free(NULL, tmp_str);
}
diff --git a/ui/qt/qt_ui_utils.cpp b/ui/qt/qt_ui_utils.cpp
index 7c7b5a1d38..7e34706536 100644
--- a/ui/qt/qt_ui_utils.cpp
+++ b/ui/qt/qt_ui_utils.cpp
@@ -77,6 +77,26 @@ const QString address_to_display_qstring(const _address *address)
return address_qstr;
}
+const QString val_to_qstring(const guint32 val, const value_string *vs, const char *fmt)
+{
+ QString val_qstr = QString();
+ gchar* gchar_p = val_to_str_wmem(NULL, val, vs, fmt);
+ val_qstr = gchar_p;
+ wmem_free(NULL, gchar_p);
+
+ return val_qstr;
+}
+
+const QString val_ext_to_qstring(const guint32 val, value_string_ext *vse, const char *fmt)
+{
+ QString val_qstr = QString();
+ gchar* gchar_p = val_to_str_ext_wmem(NULL, val, vse, fmt);
+ val_qstr = gchar_p;
+ wmem_free(NULL, gchar_p);
+
+ return val_qstr;
+}
+
void smooth_font_size(QFont &font) {
QFontDatabase fdb;
#if QT_VERSION < QT_VERSION_CHECK(4, 8, 0)
diff --git a/ui/qt/qt_ui_utils.h b/ui/qt/qt_ui_utils.h
index e114f7c2fd..14fa196635 100644
--- a/ui/qt/qt_ui_utils.h
+++ b/ui/qt/qt_ui_utils.h
@@ -35,6 +35,7 @@
#include <glib.h>
#include <epan/timestamp.h>
+#include <epan/value_string.h>
#include <QFont>
#include <QString>
@@ -109,6 +110,26 @@ const QString address_to_qstring(const struct _address *address);
*/
const QString address_to_display_qstring(const struct _address *address);
+/** Convert a value_string to a QString using val_to_str_wmem().
+ *
+ * @param val The value to convert to string.
+ * @param vs value_string array.
+ * @param fmt Formatting for value not in array.
+ *
+ * @return A QString representation of the value_string.
+ */
+const QString val_to_qstring(const guint32 val, const value_string *vs, const char *fmt);
+
+/** Convert an value_string_ext to a QString using val_to_str_ext_wmem().
+ *
+ * @param val The value to convert to string.
+ * @param vse value_string_ext array.
+ * @param fmt Formatting for value not in array.
+ *
+ * @return A QString representation of the value_string_ext.
+ */
+const QString val_ext_to_qstring(const guint32 val, value_string_ext *vse, const char *fmt);
+
/**
* Round the current size of a font up to its next "smooth" size.
* If a smooth size can't be found the font is left unchanged.
diff --git a/ui/qt/rtp_stream_dialog.cpp b/ui/qt/rtp_stream_dialog.cpp
index 7a502d5585..a361355405 100644
--- a/ui/qt/rtp_stream_dialog.cpp
+++ b/ui/qt/rtp_stream_dialog.cpp
@@ -103,7 +103,7 @@ public:
if (stream_info->payload_type_name != NULL) {
setText(payload_col_, stream_info->payload_type_name);
} else {
- setText(payload_col_, val_to_str_ext(stream_info->payload_type,
+ setText(payload_col_, val_ext_to_qstring(stream_info->payload_type,
&rtp_payload_type_short_vals_ext,
"Unknown (%u)"));
}
diff --git a/ui/voip_calls.c b/ui/voip_calls.c
index cb23a11750..195cc245fc 100644
--- a/ui/voip_calls.c
+++ b/ui/voip_calls.c
@@ -282,7 +282,7 @@ voip_calls_reset_all_taps(voip_calls_tapinfo_t *tapinfo)
while(list)
{
strinfo = (rtp_stream_info_t *)list->data;
- g_free(strinfo->payload_type_name);
+ wmem_free(NULL, strinfo->payload_type_name);
list = g_list_next(list);
}
g_list_free(tapinfo->rtp_stream_list);
@@ -625,11 +625,11 @@ rtp_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, void c
if (p_conv_data && p_conv_data->rtp_dyn_payload) {
const gchar *encoding_name = rtp_dyn_payload_get_name(p_conv_data->rtp_dyn_payload, strinfo->payload_type);
if (encoding_name) {
- strinfo->payload_type_name = g_strdup(encoding_name);
+ strinfo->payload_type_name = wmem_strdup(NULL, encoding_name);
}
}
}
- if (!strinfo->payload_type_name) strinfo->payload_type_name = g_strdup(val_to_str_ext(strinfo->payload_type, &rtp_payload_type_short_vals_ext, "%u"));
+ if (!strinfo->payload_type_name) strinfo->payload_type_name = (gchar*)val_to_str_ext_wmem(NULL, strinfo->payload_type, &rtp_payload_type_short_vals_ext, "%u");
strinfo->packet_count = 0;
strinfo->start_fd = pinfo->fd;
strinfo->start_rel_time = pinfo->rel_ts;
@@ -932,47 +932,49 @@ t38_packet(void *tap_offset_ptr, packet_info *pinfo, epan_dissect_t *edt, const
comment = g_strdup_printf("t38:t30 Ind:%s",val_to_str(t38_info->t30ind_value, t38_T30_indicator_vals, "Ukn (0x%02X)") );
line_style = 1;
} else if (t38_info->type_msg == 1) { /* 1=data */
+ gchar *tmp_str1, *tmp_str2;
switch(t38_info->Data_Field_field_type_value) {
case 0: /* hdlc-data */
break;
case 2: /* hdlc-fcs-OK */
case 4: /* hdlc-fcs-OK-sig-end */
- frame_label = g_strdup_printf("%s %s",
- val_to_str_ext(t38_info->t30_Facsimile_Control & 0x7F,
+ tmp_str1 = val_to_str_ext_wmem(NULL, t38_info->t30_Facsimile_Control & 0x7F,
&t30_facsimile_control_field_vals_short_ext,
- "Ukn (0x%02X)"),
+ "Ukn (0x%02X)");
+ frame_label = g_strdup_printf("%s %s",
+ tmp_str1,
t38_info->desc);
- comment = g_strdup_printf("t38:%s:HDLC:%s",
- val_to_str(t38_info->data_value,
- t38_T30_data_vals,
- "Ukn (0x%02X)"),
- val_to_str_ext(t38_info->t30_Facsimile_Control & 0x7F,
+ wmem_free(NULL, tmp_str1);
+
+ tmp_str1 = val_to_str_ext_wmem(NULL, t38_info->t30_Facsimile_Control & 0x7F,
&t30_facsimile_control_field_vals_ext,
- "Ukn (0x%02X)"));
+ "Ukn (0x%02X)");
+ tmp_str2 = val_to_str_wmem(NULL, t38_info->data_value,
+ t38_T30_data_vals,
+ "Ukn (0x%02X)");
+ comment = g_strdup_printf("t38:%s:HDLC:%s", tmp_str2, tmp_str1);
+ wmem_free(NULL, tmp_str1);
+ wmem_free(NULL, tmp_str2);
break;
case 3: /* hdlc-fcs-BAD */
case 5: /* hdlc-fcs-BAD-sig-end */
frame_label = g_strdup(t38_info->Data_Field_field_type_value == 3 ? "fcs-BAD" : "fcs-BAD-sig-end");
+ tmp_str1 = val_to_str_wmem(NULL, t38_info->data_value, t38_T30_data_vals, "Ukn (0x%02X)");
comment = g_strdup_printf("WARNING: received t38:%s:HDLC:%s",
- val_to_str(t38_info->data_value,
- t38_T30_data_vals,
- "Ukn (0x%02X)"),
+ tmp_str1,
t38_info->Data_Field_field_type_value == 3 ? "fcs-BAD" : "fcs-BAD-sig-end");
+ wmem_free(NULL, tmp_str1);
break;
case 7: /* t4-non-ecm-sig-end */
duration = nstime_to_sec(&pinfo->rel_ts) - t38_info->time_first_t4_data;
- frame_label = g_strdup_printf("t4-non-ecm-data:%s",
- val_to_str(t38_info->data_value,
- t38_T30_data_vals,
- "Ukn (0x%02X)") );
+ tmp_str1 = val_to_str_wmem(NULL, t38_info->data_value, t38_T30_data_vals, "Ukn (0x%02X)");
+ frame_label = g_strdup_printf("t4-non-ecm-data:%s", tmp_str1);
comment = g_strdup_printf("t38:t4-non-ecm-data:%s Duration: %.2fs %s",
- val_to_str(t38_info->data_value,
- t38_T30_data_vals,
- "Ukn (0x%02X)"),
- duration, t38_info->desc_comment );
+ tmp_str1, duration, t38_info->desc_comment );
insert_to_graph_t38(tapinfo, pinfo, edt, frame_label, comment,
(guint16)conv_num, &(pinfo->src), &(pinfo->dst),
line_style, t38_info->frame_num_first_t4_data);
+ wmem_free(NULL, tmp_str1);
break;
}
}