git: 19aba210e1a1 - main - ssh: fix leak and apply style(9) to hostname canonicalization

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Tue, 14 Mar 2023 17:29:38 UTC
The branch main has been updated by emaste:

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

commit 19aba210e1a1b5999bff10cccab5a277060c4d46
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-02-08 13:16:53 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
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);
 		}
 	}