diff options
-rw-r--r-- | epan/value_string.c | 10 | ||||
-rw-r--r-- | epan/value_string.h | 4 | ||||
-rw-r--r-- | ui/cli/tap-afpstat.c | 5 | ||||
-rw-r--r-- | ui/cli/tap-rtp.c | 8 | ||||
-rw-r--r-- | ui/cli/tap-scsistat.c | 7 | ||||
-rw-r--r-- | ui/cli/tap-smbstat.c | 14 | ||||
-rw-r--r-- | ui/gtk/afp_stat.c | 4 | ||||
-rw-r--r-- | ui/gtk/rtp_stream_dlg.c | 28 | ||||
-rw-r--r-- | ui/gtk/scsi_stat.c | 4 | ||||
-rw-r--r-- | ui/gtk/smb2_stat.c | 4 | ||||
-rw-r--r-- | ui/gtk/smb_stat.c | 12 | ||||
-rw-r--r-- | ui/qt/qt_ui_utils.cpp | 20 | ||||
-rw-r--r-- | ui/qt/qt_ui_utils.h | 21 | ||||
-rw-r--r-- | ui/qt/rtp_stream_dialog.cpp | 2 | ||||
-rw-r--r-- | ui/voip_calls.c | 48 |
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; } } |