diff options
author | stig <stig@f5534014-38df-0310-8fa8-9805f1628bb7> | 2008-02-22 22:47:19 +0000 |
---|---|---|
committer | stig <stig@f5534014-38df-0310-8fa8-9805f1628bb7> | 2008-02-22 22:47:19 +0000 |
commit | 824933910670b7c29752879f4c48ca15aad446f9 (patch) | |
tree | f4bed2fedbbbf26138ec196abe668d41572904f5 /epan/column-utils.c | |
parent | bb9df0f46bc7140e54d0f5b2cebb13af01065144 (diff) |
Improved custom columns with custom title.
Fixed a crash when adding an empty custom field.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@24438 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/column-utils.c')
-rw-r--r-- | epan/column-utils.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/epan/column-utils.c b/epan/column-utils.c index a472206652..df1062b003 100644 --- a/epan/column-utils.c +++ b/epan/column-utils.c @@ -60,6 +60,7 @@ col_setup(column_info *cinfo, gint num_cols) cinfo->col_first = (int *) g_malloc(sizeof(int) * (NUM_COL_FMTS)); cinfo->col_last = (int *) g_malloc(sizeof(int) * (NUM_COL_FMTS)); cinfo->col_title = (gchar **) g_malloc(sizeof(gchar *) * num_cols); + cinfo->col_custom_field = (gchar **) g_malloc(sizeof(gchar *) * num_cols); cinfo->col_data = (const gchar **) g_malloc(sizeof(gchar *) * num_cols); cinfo->col_buf = (gchar **) g_malloc(sizeof(gchar *) * num_cols); cinfo->col_fence = (int *) g_malloc(sizeof(int) * num_cols); @@ -282,8 +283,8 @@ col_custom_set_fstr(const gchar *field_name, const gchar *format, ...) va_start(ap, format); for (i = ci->col_first[COL_CUSTOM]; i <= ci->col_last[COL_CUSTOM]; i++) { - if (strcmp(ci->col_title[i], field_name) == 0 && - ci->fmt_matx[i][COL_CUSTOM]) { + if (ci->fmt_matx[i][COL_CUSTOM] && + strcmp(ci->col_custom_field[i], field_name) == 0) { ci->col_data[i] = ci->col_buf[i]; g_vsnprintf(ci->col_buf[i], COL_MAX_LEN, format, ap); strncpy(ci->col_expr[i], field_name, COL_MAX_LEN); @@ -307,8 +308,9 @@ col_custom_prime_edt(epan_dissect_t *edt, column_info *cinfo) for (i = cinfo->col_first[COL_CUSTOM]; i <= cinfo->col_last[COL_CUSTOM]; i++) { - if (cinfo->fmt_matx[i][COL_CUSTOM]) { - if(dfilter_compile(cinfo->col_title[i], &dfilter_code)) + if (cinfo->fmt_matx[i][COL_CUSTOM] && + strlen(cinfo->col_custom_field[i]) > 0) { + if(dfilter_compile(cinfo->col_custom_field[i], &dfilter_code)) epan_dissect_prime_dfilter(edt, dfilter_code); } } |