From 2657071e882ad10b8a0a07da13e6f9fc9c56c67b Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Fri, 18 Oct 2013 21:17:01 +0000 Subject: Don't allow invalid ranges to be specified for the stats tree. Bug 9130 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9130) Not sure which memory allocation should be used here (using wmem caused crash), but this revision can at least be easily backported to 1.10 where the bug was reported. Also allow a single number to be used in the stats range since it's considered a valid "range" by the UAT. svn path=/trunk/; revision=52679 --- plugins/stats_tree/pinfo_stats_tree.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'plugins/stats_tree') diff --git a/plugins/stats_tree/pinfo_stats_tree.c b/plugins/stats_tree/pinfo_stats_tree.c index 6529040d98..6adf6d4605 100644 --- a/plugins/stats_tree/pinfo_stats_tree.c +++ b/plugins/stats_tree/pinfo_stats_tree.c @@ -68,6 +68,18 @@ static void* uat_plen_record_copy_cb(void* n, const void* o, size_t siz _U_) { return n; } +static void +uat_plen_record_update_cb(void *r, const char **err) +{ + uat_plen_record_t *rec = (uat_plen_record_t*)r; + if (rec->packet_range->nranges < 1) { + *err = ep_strdup_printf("Invalid range string"); + return; + } + + *err = NULL; +} + static void uat_plen_record_free_cb(void*r) { uat_plen_record_t* record = (uat_plen_record_t*)r; @@ -206,7 +218,7 @@ void register_pinfo_stat_trees(void) { 0, /* not a dissector, so affects neither dissection nor fields */ NULL, /* help */ uat_plen_record_copy_cb, /* copy callback */ - NULL, /* update callback */ + uat_plen_record_update_cb, /* update callback */ uat_plen_record_free_cb, /* free callback */ uat_plen_record_post_update_cb, /* post update callback */ plen_uat_flds); /* UAT field definitions */ -- cgit v1.2.1