]> git.pond.sub.org Git - empserver/commitdiff
(verify_row): Check all values against symbol tables, not just
authorMarkus Armbruster <armbru@pond.sub.org>
Mon, 6 Feb 2006 07:57:04 +0000 (07:57 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Mon, 6 Feb 2006 07:57:04 +0000 (07:57 +0000)
non-negative ones.

(verify_row): Fix off by one in non-symbol table index check.

src/lib/common/ef_verify.c

index 62bc5424b56847d841c2999a950adb88fa68860a..cfc2e1ee26e6053a822ff2835bf63e7bb3b269b4 100644 (file)
@@ -103,23 +103,21 @@ verify_row(int type, int row)
 
            } else if (ca_sym == symbol_ca) {
                /* symbol */
-               if (val.val_as.lng > -1) {
-                   if (!symbol_by_value(val.val_as.lng,
-                                        ef_ptr(ca[i].ca_table,0))) {
-                       fprintf(stderr, "value %ld not found in "
-                               "symbol table %s when verify table %s "
-                               "row %d field %s\n",
-                               val.val_as.lng,
-                               ef_nameof(ca[i].ca_table),
-                               ef_nameof(type), row + 1,
-                               ca[i].ca_name);
-                       ret_val = -1;
-                   }
+               if (!symbol_by_value(val.val_as.lng,
+                                    ef_ptr(ca[i].ca_table, 0))) {
+                   fprintf(stderr, "value %ld not found in "
+                           "symbol table %s when verify table %s "
+                           "row %d field %s\n",
+                           val.val_as.lng,
+                           ef_nameof(ca[i].ca_table),
+                           ef_nameof(type), row + 1,
+                           ca[i].ca_name);
+                   ret_val = -1;
                }
            } else {
                /* table index */
-               if (val.val_as.lng >= ef_nelem(ca[i].ca_table) ||
-                   val.val_as.lng < -2) {
+               if (val.val_as.lng >= ef_nelem(ca[i].ca_table)
+                   || val.val_as.lng < -1) {
                    fprintf(stderr, "Table index %ld to table %s "
                            "out of range, nelements %d for table %s "
                            "row %d field %s\n",