]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix getsockname() call in Windows localaddr 1418/head
authorRull Deef <deeroll666@gmail.com>
Thu, 27 Mar 2025 07:54:46 +0000 (10:54 +0300)
committerGreg Hudson <ghudson@mit.edu>
Tue, 8 Apr 2025 19:29:29 +0000 (15:29 -0400)
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

index 4c734349836fa95b0edec29aaba4fb6b55738034..73dec6af25e12de1a6add4b809a36046e75f5860 100644 (file)
@@ -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;