--- cipher.c.orig Wed Jul 28 05:40:29 2004
+++ cipher.c Thu Aug 19 03:21:23 2004
@@ -52,6 +52,7 @@
extern void ssh1_3des_iv(EVP_CIPHER_CTX *, int, u_char *, int);
extern const EVP_CIPHER *evp_aes_128_ctr(void);
extern void ssh_aes_ctr_iv(EVP_CIPHER_CTX *, int, u_char *, u_int);
+#define EVP_acss NULL
struct Cipher {
char *name;
--- sshconnect2.c.orig Sun Jun 13 08:53:24 2004
+++ sshconnect2.c Thu Aug 19 03:21:23 2004
@@ -457,7 +457,7 @@
* moved to the end of the queue. this also avoids confusion by
* duplicate keys
*/
- TAILQ_FOREACH_REVERSE(id, &authctxt->keys, idlist, next) {
+ TAILQ_FOREACH_REVERSE(id, &authctxt->keys, next, idlist) {
if (key_equal(key, id->key)) {
sent = sign_and_send_pubkey(authctxt, id);
break;
--- sshd/Makefile.orig Thu Aug 19 02:16:08 2004
+++ sshd/Makefile Thu Aug 19 03:22:46 2004
@@ -16,7 +16,7 @@
auth-skey.c auth-bsdauth.c auth2-hostbased.c auth2-kbdint.c \
auth2-none.c auth2-passwd.c auth2-pubkey.c \
monitor_mm.c monitor.c monitor_wrap.c \
- kexdhs.c kexgexs.c
+ kexdhs.c kexgexs.c closefrom.c
.include <bsd.own.mk> # for KERBEROS and AFS
--- /dev/null Thu Aug 19 03:49:31 2004
+++ closefrom.c Thu Aug 19 03:48:44 2004
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2004 Todd C. Miller <
[email protected]>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "includes.h"
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <dirent.h>
+
+RCSID("$Id: bsd-closefrom.c,v 1.1 2004/08/15 08:41:00 djm Exp $");
+
+#ifndef lint
+static const char sudorcsid[] = "$Sudo: closefrom.c,v 1.6 2004/06/01 20:51:56 millert Exp $";
+#endif /* lint */
+
+/*
+ * Close all file descriptors greater than or equal to lowfd.
+ */
+void
+closefrom(int lowfd)
+{
+ long fd, maxfd;
+ {
+ /*
+ * Fall back on sysconf(). We avoid checking resource limits since
+ * it is possible to open a file descriptor and then drop the rlimit
+ * such that it is below the open fd.
+ */
+ maxfd = sysconf(_SC_OPEN_MAX);
+ if (maxfd < 0)
+ maxfd = OPEN_MAX;
+
+ for (fd = lowfd; fd < maxfd; fd++)
+ (void) close((int) fd);
+ }
+}