diff options
| -rw-r--r-- | security/openssh/files/patch-ac | 22 | ||||
| -rw-r--r-- | security/openssh/files/patch-av | 88 | ||||
| -rw-r--r-- | security/openssh/files/patch-sftp-server.c | 25 | 
3 files changed, 127 insertions, 8 deletions
diff --git a/security/openssh/files/patch-ac b/security/openssh/files/patch-ac index 2ab60dc3750f..f110376005d8 100644 --- a/security/openssh/files/patch-ac +++ b/security/openssh/files/patch-ac @@ -1,5 +1,5 @@ ---- includes.h.orig	Fri Apr 14 06:30:31 2000 -+++ includes.h	Sat May 13 12:12:41 2000 +--- includes.h.orig	Sat Jan 26 17:44:22 2002 ++++ includes.h	Fri Mar  8 20:59:17 2002  @@ -24,12 +24,12 @@   #include <sys/select.h>   #include <sys/param.h> @@ -22,7 +22,7 @@   #include <stdio.h>   #include <ctype.h>   #include <errno.h> -@@ -65,5 +64,30 @@ +@@ -62,5 +61,46 @@    * client program.  Socketpairs do not seem to work on all systems.    */   #define USE_PIPES 1 @@ -50,6 +50,22 @@  +	int64_t		__ss_align;	/* force desired structure storage alignment */  +	char		__ss_pad2[_SS_PAD2SIZE];  +}; ++ ++/* defines for comatibility with older FreeBSD releases */ ++#ifndef	SHUT_RD ++#define	SHUT_RD		0 ++#endif ++#ifndef	SHUT_WR ++#define	SHUT_WR		1 ++#endif ++#ifndef	SHUT_RDWR ++#define	SHUT_RDWR	2 ++#endif ++ ++#ifndef INET_ADDRSTRLEN ++#define	INET_ADDRSTRLEN	46 ++#endif ++  +#endif   #endif				/* INCLUDES_H */ diff --git a/security/openssh/files/patch-av b/security/openssh/files/patch-av index 146643ad6122..446b88f8c8a3 100644 --- a/security/openssh/files/patch-av +++ b/security/openssh/files/patch-av @@ -1,8 +1,86 @@ ---- auth.c.orig	Sat Nov  4 17:30:17 2000 -+++ auth.c	Sat Nov  4 17:29:00 2000 -@@ -111,6 +111,16 @@ - 				return 0; - 		} +--- auth.c.orig	Fri Mar  1 14:12:10 2002 ++++ auth.c	Fri Mar  8 20:57:17 2002 +@@ -25,7 +25,77 @@ + #include "includes.h" + RCSID("$OpenBSD: auth.c,v 1.35 2002/03/01 13:12:10 markus Exp $"); +  ++#if defined(__FreeBSD__) && __FreeBSD__ <= 3 ++/* ++ * Copyright (c) 1997 Todd C. Miller <Todd.Miller@courtesan.com> ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ *    notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ *    notice, this list of conditions and the following disclaimer in the ++ *    documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ *    derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, ++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL ++ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ++ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ++ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++char * ++dirname(path) ++	const char *path; ++{ ++	static char bname[MAXPATHLEN]; ++	register const char *endp; ++ ++	/* Empty or NULL string gets treated as "." */ ++	if (path == NULL || *path == '\0') { ++		(void)strcpy(bname, "."); ++		return(bname); ++	} ++ ++	/* Strip trailing slashes */ ++	endp = path + strlen(path) - 1; ++	while (endp > path && *endp == '/') ++		endp--; ++ ++	/* Find the start of the dir */ ++	while (endp > path && *endp != '/') ++		endp--; ++ ++	/* Either the dir is "/" or there are no slashes */ ++	if (endp == path) { ++		(void)strcpy(bname, *endp == '/' ? "/" : "."); ++		return(bname); ++	} else { ++		do { ++			endp--; ++		} while (endp > path && *endp == '/'); ++	} ++ ++	if (endp - path + 2 > sizeof(bname)) { ++		errno = ENAMETOOLONG; ++		return(NULL); ++	} ++	(void)strncpy(bname, path, endp - path + 1); ++	bname[endp - path + 1] = '\0'; ++	return(bname); ++} ++#else + #include <libgen.h> ++#endif +  + #include "xmalloc.h" + #include "match.h" +@@ -141,6 +211,16 @@ + 			} + 		ga_free();   	}  +#ifdef __FreeBSD__    +	/* Fail if the account's expiration time has passed. */ diff --git a/security/openssh/files/patch-sftp-server.c b/security/openssh/files/patch-sftp-server.c new file mode 100644 index 000000000000..09b2b630bf7d --- /dev/null +++ b/security/openssh/files/patch-sftp-server.c @@ -0,0 +1,25 @@ +--- sftp-server.c.orig	Wed Feb 13 01:28:13 2002 ++++ sftp-server.c	Fri Mar  8 21:15:56 2002 +@@ -614,6 +614,9 @@ + 	u_int32_t id; + 	int handle, fd, ret; + 	int status = SSH2_FX_OK; ++#if defined(__FreeBSD__) && __FreeBSD__ <= 3 ++	char *name; ++#endif +  + 	id = get_int(); + 	handle = get_handle(); +@@ -634,7 +637,12 @@ + 				status = errno_to_portable(errno); + 		} + 		if (a->flags & SSH2_FILEXFER_ATTR_ACMODTIME) { ++#if defined(__FreeBSD__) && __FreeBSD__ <= 3 ++			name = handle_to_name(handle); ++			ret = utimes(name, attrib_to_tv(a)); ++#else + 			ret = futimes(fd, attrib_to_tv(a)); ++#endif + 			if (ret == -1) + 				status = errno_to_portable(errno); + 		}  | 
