macro_name_chk: return valid error string for fail return when empty macro name field;
[obnox/wireshark/wip.git] / epan / dfilter / dfilter-macro.c
index 2f154ce92f26c2549e97debe7c6e8b587f353cbf..255874a3210b834c2259477d6a69cfdf09904f6c 100644 (file)
@@ -506,6 +506,11 @@ static void* macro_copy(void* dest, const void* orig, unsigned len _U_) {
 static gboolean macro_name_chk(void* r _U_, const char* in_name, unsigned name_len, void* u1 _U_, void* u2 _U_, const char** error) {
        guint i;
 
+       if (name_len == 0) {
+               *error = "invalid name";
+               return FALSE;
+       }
+
        for (i=0; i < name_len; i++) {
                if (!(in_name[i] == '_' || isalnum((guchar)in_name[i]) ) ) {
                        *error = "invalid char in name";
@@ -513,7 +518,7 @@ static gboolean macro_name_chk(void* r _U_, const char* in_name, unsigned name_l
                }
        }
 
-       return i > 0 ? TRUE : FALSE;
+       return TRUE;
 }
 
 UAT_CSTRING_CB_DEF(macro,name,dfilter_macro_t)