]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: strdup may return NULL if memory allocation fails. Use
authortobhe@openbsd.org <tobhe@openbsd.org>
Mon, 16 Dec 2019 13:58:53 +0000 (13:58 +0000)
committerDarren Tucker <dtucker@dtucker.net>
Fri, 20 Dec 2019 03:25:08 +0000 (14:25 +1100)
the safer xstrdup which fatals on allocation failures.

ok markus@

OpenBSD-Commit-ID: 8b608d387120630753cbcb8110e0b019c0c9a0d0

auth.c
packet.c

diff --git a/auth.c b/auth.c
index 0a46e1d8aecb08af9d1755838c6fa091f14cca06..48838508ef08613efccdda0c0cff051b7e9def7f 100644 (file)
--- a/auth.c
+++ b/auth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: auth.c,v 1.143 2019/11/25 00:54:23 djm Exp $ */
+/* $OpenBSD: auth.c,v 1.144 2019/12/16 13:58:53 tobhe Exp $ */
 /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  *
@@ -748,7 +748,7 @@ remote_hostname(struct ssh *ssh)
        if (getpeername(ssh_packet_get_connection_in(ssh),
            (struct sockaddr *)&from, &fromlen) == -1) {
                debug("getpeername failed: %.100s", strerror(errno));
-               return strdup(ntop);
+               return xstrdup(ntop);
        }
 
        ipv64_normalise_mapped(&from, &fromlen);
@@ -760,7 +760,7 @@ remote_hostname(struct ssh *ssh)
        if (getnameinfo((struct sockaddr *)&from, fromlen, name, sizeof(name),
            NULL, 0, NI_NAMEREQD) != 0) {
                /* Host name not found.  Use ip address. */
-               return strdup(ntop);
+               return xstrdup(ntop);
        }
 
        /*
@@ -775,7 +775,7 @@ remote_hostname(struct ssh *ssh)
                logit("Nasty PTR record \"%s\" is set up for %s, ignoring",
                    name, ntop);
                freeaddrinfo(ai);
-               return strdup(ntop);
+               return xstrdup(ntop);
        }
 
        /* Names are stored in lowercase. */
@@ -796,7 +796,7 @@ remote_hostname(struct ssh *ssh)
        if (getaddrinfo(name, NULL, &hints, &aitop) != 0) {
                logit("reverse mapping checking getaddrinfo for %.700s "
                    "[%s] failed.", name, ntop);
-               return strdup(ntop);
+               return xstrdup(ntop);
        }
        /* Look for the address from the list of addresses. */
        for (ai = aitop; ai; ai = ai->ai_next) {
@@ -811,9 +811,9 @@ remote_hostname(struct ssh *ssh)
                /* Address not found for the host name. */
                logit("Address %.100s maps to %.600s, but this does not "
                    "map back to the address.", ntop, name);
-               return strdup(ntop);
+               return xstrdup(ntop);
        }
-       return strdup(name);
+       return xstrdup(name);
 }
 
 /*
index 7a703d695acf4e18e3c6b709e33ea5152f0811c1..2b50ef415a15a884b97498314fed60ca3e1c9963 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: packet.c,v 1.286 2019/06/28 13:35:04 deraadt Exp $ */
+/* $OpenBSD: packet.c,v 1.287 2019/12/16 13:58:53 tobhe Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -530,9 +530,9 @@ ssh_remote_ipaddr(struct ssh *ssh)
                        ssh->local_ipaddr = get_local_ipaddr(sock);
                        ssh->local_port = get_local_port(sock);
                } else {
-                       ssh->remote_ipaddr = strdup("UNKNOWN");
+                       ssh->remote_ipaddr = xstrdup("UNKNOWN");
                        ssh->remote_port = 65535;
-                       ssh->local_ipaddr = strdup("UNKNOWN");
+                       ssh->local_ipaddr = xstrdup("UNKNOWN");
                        ssh->local_port = 65535;
                }
        }