diff options
author | rofl0r <retnyg@gmx.net> | 2011-09-11 01:05:07 +0400 |
---|---|---|
committer | rofl0r <retnyg@gmx.net> | 2011-09-11 01:05:07 +0400 |
commit | c377789d14d3ba928473fb5fb620aef72017c5a2 (patch) | |
tree | 94cb9f77647276fd7f22b4bb2ac01f424ba4cdf6 | |
parent | a9df8ecaaa36c12cf4852fb603eb38f6ece4bf8e (diff) |
care about the argv array when the filename is passed
-rw-r--r-- | src/main.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -44,6 +44,7 @@ int main(int argc, char *argv[]) { char buf[256]; char pbuf[256]; int opt; + int start_argv = 1; while ((opt = getopt(argc, argv, "fh:")) != -1) { switch (opt) { @@ -52,6 +53,11 @@ int main(int argc, char *argv[]) { break; case 'f': path = (char *)optarg; + if(!path) { + printf("error: no path supplied."); + return(EXIT_FAILURE); + } + start_argv = 3; break; default: /* '?' */ usage(argv); @@ -93,7 +99,7 @@ int main(int argc, char *argv[]) { snprintf(buf, sizeof(buf), "LD_PRELOAD=%s/libproxychains.so", LIB_DIR); putenv(buf); - execvp(argv[1], &argv[1]); + execvp(argv[start_argv], &argv[start_argv]); perror("proxychains can't load process...."); return EXIT_FAILURE; |