--- 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);
+    }
+}