diff options
Diffstat (limited to '02-cwd-interactive.patch')
-rw-r--r-- | 02-cwd-interactive.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/02-cwd-interactive.patch b/02-cwd-interactive.patch new file mode 100644 index 000000000000..328e5014f9a3 --- /dev/null +++ b/02-cwd-interactive.patch @@ -0,0 +1,40 @@ +--- ftpdconfig.c ++++ ftpdconfig.c +@@ -299,16 +299,6 @@ + break; + case OPT_COMMENT: + break; +- case OPT_ROOT: +- if (strlen(serverroot)>MAXPATHLEN) { +- printf("serverroot option argument is too long."); +- fclose(fp); +- return -1; +- } +- strcpy(serverroot,arg); +- if (serverroot[strlen(serverroot)-1]=='/') +- serverroot[strlen(serverroot)-1]=0; +- break; + case OPT_PORT: + serverport=atoi(arg); + break; +@@ -334,6 +324,20 @@ + strtoupper(arg); + if (!strcmp(arg,"DAEMON")) daemonmode=1; + break; ++ case OPT_ROOT: ++ if (strlen(serverroot)>MAXPATHLEN) { ++ printf("serverroot option argument is too long."); ++ fclose(fp); ++ return -1; ++ } ++ if (daemonmode==1) ++ strcpy(serverroot,arg); ++ else ++ getcwd(serverroot, sizeof(serverroot)); ++ ++ if (serverroot[strlen(serverroot)-1]=='/') ++ serverroot[strlen(serverroot)-1]=0; ++ break; + case OPT_LOG: + if (arg==NULL || strlen(arg)==0) break; + logfile=fopen(arg,"a"); |