From e3335375d7ac4e240a8a26a238a3d2a964c9baab Mon Sep 17 00:00:00 2001 From: Rull Deef Date: Thu, 27 Mar 2025 10:54:46 +0300 Subject: [PATCH] Fix getsockname() call in Windows localaddr When querying local IP addresses, local_addr_fallback_kludge() is called on Windows if gethostname() or gethostbyname() fails. This function's call to getsockname() erroneously passes a small integer as the third argument instead of a pointer, likely causing a process crash. This bug has been present since 1.1, but is rarely encountered due to the rarity of requests for addressful tickets. Fix it. [ghudson@mit.edu: rewrote commit message] ticket: 9171 (new) --- src/lib/krb5/os/localaddr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/krb5/os/localaddr.c b/src/lib/krb5/os/localaddr.c index 4c73434983..73dec6af25 100644 --- a/src/lib/krb5/os/localaddr.c +++ b/src/lib/krb5/os/localaddr.c @@ -1437,7 +1437,7 @@ static struct hostent *local_addr_fallback_kludge(void) if (err == SOCKET_ERROR) return NULL; - err = getsockname(sock, (LPSOCKADDR) &addr, (int *) size); + err = getsockname(sock, (LPSOCKADDR) &addr, &size); if (err == SOCKET_ERROR) return NULL; -- 2.47.2