summarylogtreecommitdiffstats
path: root/02-cwd-interactive.patch
diff options
context:
space:
mode:
Diffstat (limited to '02-cwd-interactive.patch')
-rw-r--r--02-cwd-interactive.patch40
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");