aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/proto.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/epan/proto.c b/epan/proto.c
index eb007fed6c..08b3b55020 100644
--- a/epan/proto.c
+++ b/epan/proto.c
@@ -9542,7 +9542,7 @@ fill_label_number(field_info *fi, gchar *label_str, gboolean is_signed)
if (hfinfo->display & BASE_SPECIAL_VALS) {
/*
* Unique values only display value_string string
- * if there is a match. Otherwise it's just a number
+ * if there is a match. Otherwise it's just a number
*/
if (val_str) {
label_fill_descr(label_str, 0, hfinfo, val_str, out);
@@ -9597,13 +9597,28 @@ fill_label_number64(field_info *fi, gchar *label_str, gboolean is_signed)
label_fill(label_str, 0, hfinfo, tmp);
}
else if (hfinfo->strings) {
- const char *val_str = hf_try_val64_to_str_const(value, hfinfo, "Unknown");
+ const char *val_str = hf_try_val64_to_str(value, hfinfo);
out = hfinfo_number_vals_format64(hfinfo, buf, value);
- if (out == NULL) /* BASE_NONE so don't put integer in descr */
- label_fill(label_str, 0, hfinfo, val_str);
- else
- label_fill_descr(label_str, 0, hfinfo, val_str, out);
+ if (hfinfo->display & BASE_SPECIAL_VALS) {
+ /*
+ * Unique values only display value_string string
+ * if there is a match. Otherwise it's just a number
+ */
+ if (val_str) {
+ label_fill_descr(label_str, 0, hfinfo, val_str, out);
+ } else {
+ label_fill(label_str, 0, hfinfo, out);
+ }
+ } else {
+ if (val_str == NULL)
+ val_str = "Unknown";
+
+ if (out == NULL) /* BASE_NONE so don't put integer in descr */
+ label_fill(label_str, 0, hfinfo, val_str);
+ else
+ label_fill_descr(label_str, 0, hfinfo, val_str, out);
+ }
}
else {
out = hfinfo_number_value_format64(hfinfo, buf, value);