git: 19aba210e1a1 - main - ssh: fix leak and apply style(9) to hostname canonicalization
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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);
}
}