summaryrefslogtreecommitdiff
path: root/netkit-ftp-0.17-linelen-segfault.patch
diff options
context:
space:
mode:
Diffstat (limited to 'netkit-ftp-0.17-linelen-segfault.patch')
-rw-r--r--netkit-ftp-0.17-linelen-segfault.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/netkit-ftp-0.17-linelen-segfault.patch b/netkit-ftp-0.17-linelen-segfault.patch
new file mode 100644
index 0000000..a16db58
--- /dev/null
+++ b/netkit-ftp-0.17-linelen-segfault.patch
@@ -0,0 +1,23 @@
+diff -up netkit-ftp-0.17/ftp/ftp.c.orig netkit-ftp-0.17/ftp/ftp.c
+diff -up netkit-ftp-0.17/ftp/ftp_var.h.orig netkit-ftp-0.17/ftp/ftp_var.h
+diff -up netkit-ftp-0.17/ftp/main.c.orig netkit-ftp-0.17/ftp/main.c
+--- netkit-ftp-0.17/ftp/main.c.orig 2018-09-03 16:49:16.459000000 +0200
++++ netkit-ftp-0.17/ftp/main.c 2018-09-03 17:00:14.853452345 +0200
+@@ -399,7 +399,7 @@ int slrflag;
+ char **
+ makeargv(int *pargc, char **parg)
+ {
+- static char *rargv[20];
++ static char *rargv[LINELEN];
+ int rargc = 0;
+ char **argp;
+
+@@ -407,7 +407,7 @@ makeargv(int *pargc, char **parg)
+ stringbase = line; /* scan from first of buffer */
+ argbase = argbuf; /* store from first of buffer */
+ slrflag = 0;
+- while ((*argp++ = slurpstring())!=NULL)
++ while ((rargc < LINELEN) && (*argp++ = slurpstring())!=NULL)
+ rargc++;
+
+ *pargc = rargc;