Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/rofl0r/proxychains-ng.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrofl0r <retnyg@gmx.net>2011-09-11 01:05:07 +0400
committerrofl0r <retnyg@gmx.net>2011-09-11 01:05:07 +0400
commitc377789d14d3ba928473fb5fb620aef72017c5a2 (patch)
tree94cb9f77647276fd7f22b4bb2ac01f424ba4cdf6
parenta9df8ecaaa36c12cf4852fb603eb38f6ece4bf8e (diff)
care about the argv array when the filename is passed
-rw-r--r--src/main.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 2f913f9..2a7ef9f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;