aboutsummaryrefslogtreecommitdiffstats
path: root/epan/uat.c
diff options
context:
space:
mode:
authorAnders <anders.broman@ericsson.com>2018-08-21 16:05:48 +0200
committerAnders Broman <a.broman58@gmail.com>2018-08-22 03:57:55 +0000
commitc57a52f68cfbb5ef7665fab2f065a5c7c7b7d057 (patch)
tree73553b000e76292587c8bdafb11f0735616224b6 /epan/uat.c
parent7d76d0ce289f77b7e9c9774fe4cb321b350ddf64 (diff)
UAT: HEX Values should be allowed the full uint32 range e.g allow 0xffffffff
Change-Id: I13ec13646271bd9de543d02de5c7cbc0d6d02019 Reviewed-on: https://code.wireshark.org/review/29219 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/uat.c')
-rw-r--r--epan/uat.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/epan/uat.c b/epan/uat.c
index 29ae99dd22..13b9854798 100644
--- a/epan/uat.c
+++ b/epan/uat.c
@@ -643,7 +643,23 @@ gboolean uat_fld_chk_num_dec(void* u1 _U_, const char* strptr, guint len, const
}
gboolean uat_fld_chk_num_hex(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) {
- return uat_fld_chk_num(16, strptr, len, err);
+ if (len > 0) {
+ char* str = g_strndup(strptr, len);
+ gboolean result;
+ guint32 value;
+
+ errno = 0;
+ result = ws_hexstrtou32(str, NULL, &value);
+ if (errno != 0) {
+ *err = g_strdup(g_strerror(errno));
+ }
+ g_free(str);
+
+ return result;
+ }
+
+ *err = NULL;
+ return TRUE;
}
gboolean uat_fld_chk_bool(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err)