Fixing CID 280433 and 280357.
authorJaap Keuter <jaap.keuter@xs4all.nl>
Mon, 14 Jan 2013 07:43:14 +0000 (07:43 -0000)
committerJaap Keuter <jaap.keuter@xs4all.nl>
Mon, 14 Jan 2013 07:43:14 +0000 (07:43 -0000)
Also strengthening the checking and debug presentation.

svn path=/trunk/; revision=47060

epan/oids.c

index 08980c926c1c515d7dc6057dd5542beb37fa6037..dddfd87783b0432ee2fd86b33ff97d49bfe6d0d2 100644 (file)
@@ -849,31 +849,27 @@ const char* oid_subid2string(guint32* subids, guint len) {
 
 static guint check_num_oid(const char* str) {
        const char* r = str;
-       char c = '\0';
+       char c = '.';
        guint n = 0;
 
        D(8,("check_num_oid: '%s'",str));
-       if (!r || *r == '.' || *r == '\0') return 0;
+       if (!r) return 0;
 
        do {
                D(9,("\tcheck_num_oid: '%c' %d",*r,n));
                switch(*r) {
-                       case '.':
+            case '.': case '\0':
                                n++;
                                if (c == '.') return 0;
+                               break;
                        case '1' : case '2' : case '3' : case '4' : case '5' :
                        case '6' : case '7' : case '8' : case '9' : case '0' :
                                continue;
-                       case '\0':
-                               n++;
-                               break;
                        default:
                                return 0;
                }
        } while((c = *r++));
 
-       if (c == '.') return 0;
-
        return n;
 }