diff options
Diffstat (limited to 'krb5-1.4-null.patch')
-rw-r--r-- | krb5-1.4-null.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/krb5-1.4-null.patch b/krb5-1.4-null.patch new file mode 100644 index 0000000..d1e6833 --- /dev/null +++ b/krb5-1.4-null.patch @@ -0,0 +1,33 @@ +Screen out interfaces which have no address in foreach_localaddr(). (Per man +pages for OpenBSD and OS/X, they are legal.) If it doesn't have an address, +the functions which call this function (src/kdc/network.c, which wants to +listen on the interfaces, and src/lib/krb5/os/localaddr.c, which just wants a +list of local addresses), have no use for it anyway. + +This is slightly different than the fix proposed by Paul Jakma at +http://mailman.mit.edu/pipermail/krb5-bugs/2004-January/002152.html, but is +more or less equivalent. + +Don't worry, printifaddr() already checks that ifp->ifa_addr != NULL before +printing it. + +--- krb5-1.4/src/lib/krb5/os/localaddr.c 2005-02-18 11:20:52.000000000 -0500 ++++ krb5-1.4/src/lib/krb5/os/localaddr.c 2005-02-18 11:23:52.000000000 -0500 +@@ -435,6 +435,8 @@ + #ifdef DEBUG + printifaddr (ifp); + #endif ++ if (ifp->ifa_addr == NULL) ++ continue; + if ((ifp->ifa_flags & IFF_UP) == 0) + continue; + if (ifp->ifa_flags & IFF_LOOPBACK) { +@@ -458,6 +460,8 @@ + /* If this address is a duplicate, punt. */ + match = 0; + for (ifp2 = ifp_head; ifp2 && ifp2 != ifp; ifp2 = ifp2->ifa_next) { ++ if (ifp2->ifa_addr == NULL) ++ continue; + if ((ifp2->ifa_flags & IFF_UP) == 0) + continue; + if (ifp2->ifa_flags & IFF_LOOPBACK) |