]> jfr.im git - solanum.git/blobdiff - bandb/bantool.c
invite: remove hardcoded callerid logic
[solanum.git] / bandb / bantool.c
index f4547eb9b48b2e56d35eded427cbff9d2b8c1979..2c385f024b29cf911f28b463766d2a1ab1f9dc19 100644 (file)
@@ -230,8 +230,11 @@ main(int argc, char *argv[])
        /* checking for our files to import or export */
        for(i = 0; i < LAST_BANDB_TYPE; i++)
        {
-               snprintf(conf, sizeof(conf), "%s/%s.conf%s",
-                           etc, bandb_table[i], bandb_suffix[i]);
+               if (snprintf(conf, sizeof(conf), "%s/%s.conf%s",
+                           etc, bandb_table[i], bandb_suffix[i]) >= sizeof(conf)) {
+                       fprintf(stderr, "* Error: Config filename too long\n");
+                       exit(EXIT_FAILURE);
+               }
 
                if(flag.import && flag.pretend == false)
                        rsdb_transaction(RSDB_TRANS_START);
@@ -740,7 +743,7 @@ check_schema(void)
                NULL
        };
 
-       for(i = 0; i < LAST_BANDB_TYPE; i++)
+       for(i = 0; i < LAST_BANDB_TYPE; i += 2 /* skip over _PERM */)
        {
                if(!table_exists(bandb_table[i]))
                {
@@ -767,8 +770,6 @@ check_schema(void)
                                          columns[j], type);
                        }
                }
-
-               i++;            /* skip over .perm */
        }
 }
 
@@ -813,10 +814,9 @@ wipe_schema(void)
 {
        int i;
        rsdb_transaction(RSDB_TRANS_START);
-       for(i = 0; i < LAST_BANDB_TYPE; i++)
+       for(i = 0; i < LAST_BANDB_TYPE; i += 2 /* double increment to skip over _PERM */)
        {
                rsdb_exec(NULL, "DROP TABLE %s", bandb_table[i]);
-               i++;            /* double increment to skip over .perm */
        }
        rsdb_transaction(RSDB_TRANS_END);