The branch main has been updated by emaste:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=19aba210e1a1b5999bff10cccab5a277060c4d46

commit 19aba210e1a1b5999bff10cccab5a277060c4d46
Author:     Ed Maste <[email protected]>
AuthorDate: 2023-02-08 13:16:53 +0000
Commit:     Ed Maste <[email protected]>
CommitDate: 2023-03-14 17:16:57 +0000

    ssh: fix leak and apply style(9) to hostname canonicalization
    
    Fixes:          bf2e2524a2ce ("ssh: canonicize the host name before...")
    Fixes:          3e74849a1ee2 ("ssh: canonicize the host name before...")
    Reviewed by:    rew
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D38441
---
 crypto/openssh/ssh.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/crypto/openssh/ssh.c b/crypto/openssh/ssh.c
index 21050ec342e0..7a44744e0029 100644
--- a/crypto/openssh/ssh.c
+++ b/crypto/openssh/ssh.c
@@ -1388,18 +1388,21 @@ main(int ac, char **av)
        cinfo->locuser = xstrdup(pw->pw_name);
 
        /* Find canonic host name. */
-       if (strchr(host, '.') == 0) {
+       if (strchr(host, '.') == NULL) {
                struct addrinfo hints;
                struct addrinfo *ai = NULL;
                int errgai;
+
                memset(&hints, 0, sizeof(hints));
                hints.ai_family = options.address_family;
                hints.ai_flags = AI_CANONNAME;
                hints.ai_socktype = SOCK_STREAM;
                errgai = getaddrinfo(host, NULL, &hints, &ai);
                if (errgai == 0) {
-                       if (ai->ai_canonname != NULL)
+                       if (ai->ai_canonname != NULL) {
+                               free(host);
                                host = xstrdup(ai->ai_canonname);
+                       }
                        freeaddrinfo(ai);
                }
        }

Reply via email to