krb5 commit: Fix getsockname() call in Windows localaddr

ghudson at mit.edu ghudson at mit.edu
Tue Apr 8 16:05:44 EDT 2025


https://github.com/krb5/krb5/commit/e3335375d7ac4e240a8a26a238a3d2a964c9baab
commit e3335375d7ac4e240a8a26a238a3d2a964c9baab
Author: Rull Deef <deeroll666 at gmail.com>
Date:   Thu Mar 27 10:54:46 2025 +0300

    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 at 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 4c7343498..73dec6af2 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;
 


More information about the cvs-krb5 mailing list