aboutsummaryrefslogtreecommitdiffstats
path: root/epan/column-utils.c
diff options
context:
space:
mode:
authorstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2008-02-22 22:47:19 +0000
committerstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2008-02-22 22:47:19 +0000
commit824933910670b7c29752879f4c48ca15aad446f9 (patch)
treef4bed2fedbbbf26138ec196abe668d41572904f5 /epan/column-utils.c
parentbb9df0f46bc7140e54d0f5b2cebb13af01065144 (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.c10
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);
}
}