]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/misc-progs/backupctrl.c
Merge branch 'seventeen-geoip' into next-geoip
[ipfire-2.x.git] / src / misc-progs / backupctrl.c
index 26d840fa71bd863f3c1e48611eb430aa0484a9b3..00c8d5b86e21a40a80ae2dd2051119417da07053 100644 (file)
 
 int main(int argc, char *argv[]) {
        int i;
-       char command[1024];
-       char add[STRING_SIZE];
-       
+       char command[STRING_SIZE] = "/var/ipfire/backup/bin/backup.pl";
+       char temp[STRING_SIZE];
+
        if (!(initsetuid()))
                exit(1);
 
-       snprintf(command, STRING_SIZE, "/var/ipfire/backup/bin/backup.pl");
-
        for (i = 1; i < argc; i++) {
-    if (strstr(argv[i], "&&")){
-             fprintf (stderr, "Bad Argument!\n");
-        exit (1);
-    }
-               if (strstr(argv[i], "|")){
-                   fprintf (stderr, "Bad Argument!\n");
-                   exit (1);
-               }
-               if (argc > 2){
-                   fprintf (stderr, "Too Many Arguments!\n");
-                   exit (1);
+               if (strstr(argv[i], "&&")){
+                       fprintf (stderr, "Bad Argument!\n");
+                       exit (1);
+
+               } else if (strstr(argv[i], "|")) {
+                       fprintf (stderr, "Bad Argument!\n");
+                       exit (1);
+
+               } else if (argc > 3) {
+                       fprintf (stderr, "Too Many Arguments!\n");
+                       exit (1);
+
+               } else {
+                       snprintf(temp, STRING_SIZE, "%s %s", command, argv[i]);
+                       snprintf(command, STRING_SIZE, "%s", temp);
                }
-               sprintf(add, " %s", argv[i]);
-               strcat(command, add);
        }
-       
+
        return safe_system(command);
 }