]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream commit
authordtucker@openbsd.org <dtucker@openbsd.org>
Mon, 15 Feb 2016 09:47:49 +0000 (09:47 +0000)
committerDamien Miller <djm@mindrot.org>
Mon, 15 Feb 2016 23:44:00 +0000 (10:44 +1100)
Add a function to enable security-related malloc_options.
  With and ok deraadt@, something similar has been in the snaps for a while.

Upstream-ID: 43a95523b832b7f3b943d2908662191110c380ed

13 files changed:
sftp-server-main.c
sftp-server.c
sftp.c
ssh-add.c
ssh-agent.c
ssh-keygen.c
ssh-keyscan.c
ssh-keysign.c
ssh-pkcs11-helper.c
ssh.c
sshd.c
xmalloc.c
xmalloc.h

index 7e644ab8982b6e5524e2d6f4cff89d75bb4acd14..c6ccd623eab961005f1b62ded1740bbcbbf32adf 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp-server-main.c,v 1.4 2009/02/21 19:32:04 tobias Exp $ */
+/* $OpenBSD: sftp-server-main.c,v 1.5 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Copyright (c) 2008 Markus Friedl.  All rights reserved.
  *
@@ -26,6 +26,7 @@
 #include "log.h"
 #include "sftp.h"
 #include "misc.h"
+#include "xmalloc.h"
 
 void
 cleanup_exit(int i)
@@ -38,6 +39,7 @@ main(int argc, char **argv)
 {
        struct passwd *user_pw;
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
        sanitise_stdfd();
 
index 79ef45b10b70390cda7f6eac689f978c433cbfb4..e11a1b89bdb6a366bc61458cb5d0e24dfd9d434e 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp-server.c,v 1.108 2015/11/16 06:13:04 logan Exp $ */
+/* $OpenBSD: sftp-server.c,v 1.109 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Copyright (c) 2000-2004 Markus Friedl.  All rights reserved.
  *
@@ -1513,6 +1513,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw)
        extern char *optarg;
        extern char *__progname;
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        __progname = ssh_get_progname(argv[0]);
        log_init(__progname, log_level, log_facility, log_stderr);
 
diff --git a/sftp.c b/sftp.c
index 788601a8d7fd31a8d55334f8c06f15536a7b6439..2077219fa4e857daf872ec80c9719d3cfde41485 100644 (file)
--- a/sftp.c
+++ b/sftp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp.c,v 1.171 2015/08/20 22:32:42 deraadt Exp $ */
+/* $OpenBSD: sftp.c,v 1.172 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
  *
@@ -2248,6 +2248,7 @@ main(int argc, char **argv)
        size_t num_requests = DEFAULT_NUM_REQUESTS;
        long long limit_kbps = 0;
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
        sanitise_stdfd();
        setlocale(LC_CTYPE, "");
index b95841afa4f24d33c3bf59d34972c82ed29b765d..fb9a53e64cfe15720e73ecc8110908e64f0c2f47 100644 (file)
--- a/ssh-add.c
+++ b/ssh-add.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-add.c,v 1.127 2015/12/11 02:31:47 mmcc Exp $ */
+/* $OpenBSD: ssh-add.c,v 1.128 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -481,6 +481,7 @@ main(int argc, char **argv)
        int r, i, ch, deleting = 0, ret = 0, key_only = 0;
        int xflag = 0, lflag = 0, Dflag = 0;
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
        sanitise_stdfd();
 
index 6c50e0f03b786832e095edff93526b80d5d67bdb..c38906d94278e2388cabb621472b01d7ca88a00e 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-agent.c,v 1.211 2015/12/11 17:41:37 doug Exp $ */
+/* $OpenBSD: ssh-agent.c,v 1.212 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1200,6 +1200,7 @@ main(int ac, char **av)
        size_t len;
        mode_t prev_mask;
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
        sanitise_stdfd();
 
index c3ec4f882c5cf56c583f0ce2a29610e2cace36be..478520123e10b2c9f278751f16776ad828285cea 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keygen.c,v 1.287 2015/12/11 03:19:09 djm Exp $ */
+/* $OpenBSD: ssh-keygen.c,v 1.288 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -2261,6 +2261,7 @@ main(int argc, char **argv)
        extern int optind;
        extern char *optarg;
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
        sanitise_stdfd();
 
index a23276f53a2bb04bb448386e57e2a9c35c46730f..7fe61e4e1a0e5b7c107cb644bddd487ca69c62f0 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keyscan.c,v 1.104 2015/11/08 23:24:03 jmc Exp $ */
+/* $OpenBSD: ssh-keyscan.c,v 1.105 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
  *
@@ -696,6 +696,7 @@ main(int argc, char **argv)
        extern int optind;
        extern char *optarg;
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        __progname = ssh_get_progname(argv[0]);
        seed_rng();
        TAILQ_INIT(&tq);
index 1d49861ae7cf1e1347fce0b9ba56ebd9c7f60827..ac5034de860ff558d72a323b829eae30af456ae5 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-keysign.c,v 1.51 2015/12/04 16:41:28 markus Exp $ */
+/* $OpenBSD: ssh-keysign.c,v 1.52 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Copyright (c) 2002 Markus Friedl.  All rights reserved.
  *
@@ -182,6 +182,7 @@ main(int argc, char **argv)
        u_int32_t rnd[256];
 #endif
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        if (pledge("stdio rpath getpw dns id", NULL) != 0)
                fatal("%s: pledge: %s", __progname, strerror(errno));
 
index f2d586395472366b84c5b3b75abf0dd7764ad9ac..53f41c555f40f5c8396a52e1cf7f0dd8ee85a439 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-pkcs11-helper.c,v 1.11 2015/08/20 22:32:42 deraadt Exp $ */
+/* $OpenBSD: ssh-pkcs11-helper.c,v 1.12 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Copyright (c) 2010 Markus Friedl.  All rights reserved.
  *
@@ -280,6 +280,7 @@ main(int argc, char **argv)
 
        extern char *__progname;
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        TAILQ_INIT(&pkcs11_keylist);
        pkcs11_init(0);
 
diff --git a/ssh.c b/ssh.c
index 993ea17214d73a81eb0ec9b5e62c0a51b6bf899f..f9ff91f049d599a8e1cb7a5608c704b18693d4c1 100644 (file)
--- a/ssh.c
+++ b/ssh.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh.c,v 1.435 2016/01/14 16:17:40 markus Exp $ */
+/* $OpenBSD: ssh.c,v 1.436 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -527,6 +527,7 @@ main(int ac, char **av)
        struct ssh_digest_ctx *md;
        u_char conn_hash[SSH_DIGEST_MAX_LENGTH];
 
+       ssh_malloc_init();      /* must be called before any mallocs */
        /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
        sanitise_stdfd();
 
diff --git a/sshd.c b/sshd.c
index 253004db42f71bca453f931037a330e8653c71ec..430569c46081f76c2d0aeaebf9921ebb833852c7 100644 (file)
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sshd.c,v 1.464 2016/01/29 02:54:45 dtucker Exp $ */
+/* $OpenBSD: sshd.c,v 1.465 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1476,6 +1476,8 @@ main(int ac, char **av)
        Authctxt *authctxt;
        struct connection_info *connection_info = get_connection_info(0, 0);
 
+       ssh_malloc_init();      /* must be called before any mallocs */
+
 #ifdef HAVE_SECUREWARE
        (void)set_auth_parameters(ac, av);
 #endif
index 98cbf8776bd617b751519cc95980f816533b61f0..dea9dd9febf1765d22784522d858900b8c5279e9 100644 (file)
--- a/xmalloc.c
+++ b/xmalloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xmalloc.c,v 1.32 2015/04/24 01:36:01 deraadt Exp $ */
+/* $OpenBSD: xmalloc.c,v 1.33 2016/02/15 09:47:49 dtucker Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
 #include "xmalloc.h"
 #include "log.h"
 
+void
+ssh_malloc_init(void)
+{
+       extern char *malloc_options;
+
+       malloc_options = "S";
+}
+
 void *
 xmalloc(size_t size)
 {
index 2bec77ba8d3be1e6b8501f04b1cf6bc04d74b920..e4992893276d91197f85f04ff256f523e15b19c6 100644 (file)
--- a/xmalloc.h
+++ b/xmalloc.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: xmalloc.h,v 1.15 2015/04/24 01:36:01 deraadt Exp $ */
+/* $OpenBSD: xmalloc.h,v 1.16 2016/02/15 09:47:49 dtucker Exp $ */
 
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -16,6 +16,7 @@
  * called by a name other than "ssh" or "Secure Shell".
  */
 
+void    ssh_malloc_init(void);
 void   *xmalloc(size_t);
 void   *xcalloc(size_t, size_t);
 void   *xreallocarray(void *, size_t, size_t);