commit 6970a96

chld  ·  2026-04-14 01:31:38 +0000 UTC
parent a9b52f6
be safe while parsing argv
1 files changed,  +16, -1
+16, -1
 1@@ -238,10 +238,25 @@ main(int argc, char **argv)
 2 			return 0;
 3 		} else if (strcmp(argv[i], "-C")==0) {
 4 		  chdir(argv[i+1]);
 5-		  ++i;
 6+
 7+		  if(i+1 <= argc) {
 8+		    ++i;
 9+		  } else {
10+		    fprintf(stderr, "specify a directory\n\n");
11+		    usage(stderr, argv[0]);
12+		    return 1;
13+		  }
14 		} else if (strcmp(argv[i], "-f")==0) {
15 		  path=argv[i+1];
16 		  ++i;
17+
18+		  if(i+1 <= argc) {
19+		    ++i;
20+		  } else {
21+		    fprintf(stderr, "specify a file\n\n");
22+		    usage(stderr, argv[0]);
23+		    return 1;
24+		  }
25 		} else if (argv[i][0] == '-') {
26 			usage(stderr, argv[0]);
27 			return 1;