From: Rull Deef Date: Thu, 27 Mar 2025 07:54:46 +0000 (+0300) Subject: Fix getsockname() call in Windows localaddr X-Git-Tag: krb5-1.22-beta1~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1418%2Fhead;p=thirdparty%2Fkrb5.git 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) --- 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;