1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-27 00:57:50 +00:00

Integrate official skeychallenge.patch

Fix denial of service in NLST CAN-2005-0256
This commit is contained in:
Andrey A. Chernov 2005-04-05 00:25:01 +00:00
parent c5ff3a0d74
commit 902ee3e5f2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=132511
2 changed files with 25 additions and 6 deletions

View File

@ -9,11 +9,11 @@
PORTNAME= wu-ftpd
PORTVERSION= 2.6.2
PORTREVISION= 5
PORTREVISION= 6
CATEGORIES= ftp
MASTER_SITES= ftp://ftp.wu-ftpd.org/pub/wu-ftpd/
PATCH_SITES= ftp://ftp.wu-ftpd.org/pub/wu-ftpd/patches/apply_to_2.6.2/
PATCHFILES= connect-dos.patch realpath.patch
PATCHFILES= connect-dos.patch realpath.patch
MAINTAINER= ache@FreeBSD.org
COMMENT= A replacement ftp server for Un*x systems

View File

@ -1,5 +1,5 @@
--- src/ftpd.c.orig Mon Mar 8 07:24:50 2004
+++ src/ftpd.c Mon Mar 8 07:24:50 2004
--- src/ftpd.c.orig Tue Apr 5 03:22:01 2005
+++ src/ftpd.c Tue Apr 5 04:10:13 2005
@@ -447,7 +447,6 @@
#ifdef OPIE
#include <opie.h>
@ -24,10 +24,10 @@
if (pwd == NULL || skeychallenge(&skey, pwd->pw_name, sbuf))
- sprintf(buf, "Password required for %s.", name);
+ snprintf(buf, 128, "Password required for %s.", name);
+ snprintf(buf, sizeof(buf)-1, "Password required for %s.", name);
else
- sprintf(buf, "%s %s for %s.", sbuf,
+ snprintf(buf, 128, "%s %s for %s.", sbuf,
+ snprintf(buf, sizeof(buf)-1, "%s %s for %s.", sbuf,
pwok ? "allowed" : "required", name);
return (buf);
}
@ -95,3 +95,22 @@
#ifdef VERBOSE_ERROR_LOGING
syslog(LOG_NOTICE, "FTP LOGIN FAILED (cannot chdir) for %s, %s",
remoteident, pw->pw_name);
@@ -7469,6 +7471,8 @@
in++;
if (*in == '/')
in++;
+ else
+ out++;
}
else if ((in[0] == '.') && (in[1] == '.') && ((in[2] == '/') || (in[2] == '\0'))) {
if (out == path) {
@@ -7497,6 +7501,9 @@
}
else {
do
+ if ((in[0] == '*') && (in[1] == '*'))
+ in++;
+ else
*out++ = *in++;
while ((*in != '\0') && (*in != '/'));
if (*in == '/')