From bc23f797296582d5aca5029dd34244de41ff8605 Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Tue, 13 Jan 2015 12:13:45 -0800 Subject: UAT error string pointers should not be const pointers. UAT error strings are usually allocated by g_strdup() or g_strdup_printf(), and must ultimately be freed by the caller. Make the pointer-to-error-string-pointer arguments to various functions be "char **", not "const char **". Fix cases that finds where a raw string was being used, as that won't work if you try to free it; g_strdup() it instead. Add a missing free of an error string. Remove some no-longer-necessary casts. Remove some unnecessary g_strdup()s (the string being handed to it was already g_malloc()ated). Change some variable declarations to match. Put in XXX comments for some cases where the error string is just freed, without being shown to the user. Change-Id: I40297746a2ef729c56763baeddbb0842386fa0d0 Reviewed-on: https://code.wireshark.org/review/6525 Reviewed-by: Guy Harris --- epan/uat.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'epan/uat.c') diff --git a/epan/uat.c b/epan/uat.c index 6868d4219f..3194e8c852 100644 --- a/epan/uat.c +++ b/epan/uat.c @@ -447,7 +447,7 @@ void uat_load_all(void) { } -gboolean uat_fld_chk_str(void* u1 _U_, const char* strptr, guint len _U_, const void* u2 _U_, const void* u3 _U_, const char** err) { +gboolean uat_fld_chk_str(void* u1 _U_, const char* strptr, guint len _U_, const void* u2 _U_, const void* u3 _U_, char** err) { if (strptr == NULL) { *err = g_strdup("NULL pointer"); return FALSE; @@ -457,7 +457,7 @@ gboolean uat_fld_chk_str(void* u1 _U_, const char* strptr, guint len _U_, const return TRUE; } -gboolean uat_fld_chk_oid(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, const char** err) { +gboolean uat_fld_chk_oid(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) { unsigned int i; *err = NULL; @@ -487,7 +487,7 @@ gboolean uat_fld_chk_oid(void* u1 _U_, const char* strptr, guint len, const void return *err == NULL; } -gboolean uat_fld_chk_proto(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, const char** err) { +gboolean uat_fld_chk_proto(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) { if (len) { char* name = g_strndup(strptr,len); ascii_strdown_inplace(name); @@ -508,7 +508,7 @@ gboolean uat_fld_chk_proto(void* u1 _U_, const char* strptr, guint len, const vo } } -static gboolean uat_fld_chk_num(int base, const char* strptr, guint len, const char** err) { +static gboolean uat_fld_chk_num(int base, const char* strptr, guint len, char** err) { if (len > 0) { char* str = g_strndup(strptr,len); char* strn; @@ -542,15 +542,15 @@ static gboolean uat_fld_chk_num(int base, const char* strptr, guint len, const c return TRUE; } -gboolean uat_fld_chk_num_dec(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, const char** err) { +gboolean uat_fld_chk_num_dec(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, char** err) { return uat_fld_chk_num(10, strptr, len, err); } -gboolean uat_fld_chk_num_hex(void* u1 _U_, const char* strptr, guint len, const void* u2 _U_, const void* u3 _U_, const char** err) { +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); } -gboolean uat_fld_chk_enum(void* u1 _U_, const char* strptr, guint len, const void* v, const void* u3 _U_, const char** err) { +gboolean uat_fld_chk_enum(void* u1 _U_, const char* strptr, guint len, const void* v, const void* u3 _U_, char** err) { char* str = g_strndup(strptr,len); guint i; const value_string* vs = (const value_string *)v; @@ -568,7 +568,7 @@ gboolean uat_fld_chk_enum(void* u1 _U_, const char* strptr, guint len, const voi return FALSE; } -gboolean uat_fld_chk_range(void* u1 _U_, const char* strptr, guint len, const void* v _U_, const void* u3, const char** err) { +gboolean uat_fld_chk_range(void* u1 _U_, const char* strptr, guint len, const void* v _U_, const void* u3, char** err) { char* str = g_strndup(strptr,len); range_t* r = NULL; convert_ret_t ret = range_convert_str(&r, str,GPOINTER_TO_UINT(u3)); -- cgit v1.2.3