The branch main has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=55f9c25f17a362fe1db1ae4df6450963e420089b
commit 55f9c25f17a362fe1db1ae4df6450963e420089b Author: Cy Schubert <c...@freebsd.org> AuthorDate: 2025-06-05 02:50:35 +0000 Commit: Cy Schubert <c...@freebsd.org> CommitDate: 2025-06-05 02:53:04 +0000 krb5: Apply patches to build under FreeBSD These patches fix the MIT KRB5 on FreeBSD. Some are obtained from ports/security/krb5-121. Sponsored by: The FreeBSD Foundation --- crypto/krb5/src/lib/krb5/ccache/t_stdio.c | 4 ++++ crypto/krb5/src/lib/krb5/os/localaddr.c | 10 ++++++++++ crypto/krb5/src/util/ss/listen.c | 4 ++++ crypto/krb5/src/util/ss/ss_internal.h | 2 ++ 4 files changed, 20 insertions(+) diff --git a/crypto/krb5/src/lib/krb5/ccache/t_stdio.c b/crypto/krb5/src/lib/krb5/ccache/t_stdio.c index 15185e301cad..4d95878b2e02 100644 --- a/crypto/krb5/src/lib/krb5/ccache/t_stdio.c +++ b/crypto/krb5/src/lib/krb5/ccache/t_stdio.c @@ -27,6 +27,7 @@ #include "scc.h" krb5_data client1 = { + 0, #define DATA "client1-comp1" sizeof(DATA), DATA, @@ -34,6 +35,7 @@ krb5_data client1 = { }; krb5_data client2 = { + 0, #define DATA "client1-comp2" sizeof(DATA), DATA, @@ -41,6 +43,7 @@ krb5_data client2 = { }; krb5_data server1 = { + 0, #define DATA "server1-comp1" sizeof(DATA), DATA, @@ -48,6 +51,7 @@ krb5_data server1 = { }; krb5_data server2 = { + 0, #define DATA "server1-comp2" sizeof(DATA), DATA, diff --git a/crypto/krb5/src/lib/krb5/os/localaddr.c b/crypto/krb5/src/lib/krb5/os/localaddr.c index 92d765f4bcac..efaee7cbdca6 100644 --- a/crypto/krb5/src/lib/krb5/os/localaddr.c +++ b/crypto/krb5/src/lib/krb5/os/localaddr.c @@ -176,6 +176,7 @@ printaddr(struct sockaddr *sa) } #endif +#if 0 static int is_loopback_address(struct sockaddr *sa) { @@ -192,6 +193,7 @@ is_loopback_address(struct sockaddr *sa) return 0; } } +#endif #ifdef HAVE_IFADDRS_H #include <ifaddrs.h> @@ -449,12 +451,14 @@ foreach_localaddr (/*@null@*/ void *data, ifp->ifa_flags &= ~IFF_UP; continue; } +#if 0 if (is_loopback_address(ifp->ifa_addr)) { /* Pretend it's not up, so the second pass will skip it. */ ifp->ifa_flags &= ~IFF_UP; continue; } +#endif /* If this address is a duplicate, punt. */ match = 0; for (ifp2 = ifp_head; ifp2 && ifp2 != ifp; ifp2 = ifp2->ifa_next) { @@ -583,11 +587,13 @@ foreach_localaddr (/*@null@*/ void *data, } /*@=moduncon@*/ +#if 0 /* None of the current callers want loopback addresses. */ if (is_loopback_address((struct sockaddr *)&lifr->lifr_addr)) { Tprintf ((" loopback\n")); goto skip; } +#endif /* Ignore interfaces that are down. */ if ((lifreq.lifr_flags & IFF_UP) == 0) { Tprintf ((" down\n")); @@ -754,11 +760,13 @@ foreach_localaddr (/*@null@*/ void *data, } /*@=moduncon@*/ +#if 0 /* None of the current callers want loopback addresses. */ if (is_loopback_address(&lifr->iflr_addr)) { Tprintf ((" loopback\n")); goto skip; } +#endif /* Ignore interfaces that are down. */ if ((lifreq.iflr_flags & IFF_UP) == 0) { Tprintf ((" down\n")); @@ -972,11 +980,13 @@ foreach_localaddr (/*@null@*/ void *data, } /*@=moduncon@*/ +#if 0 /* None of the current callers want loopback addresses. */ if (is_loopback_address(&ifreq.ifr_addr)) { Tprintf ((" loopback\n")); goto skip; } +#endif /* Ignore interfaces that are down. */ if ((ifreq.ifr_flags & IFF_UP) == 0) { Tprintf ((" down\n")); diff --git a/crypto/krb5/src/util/ss/listen.c b/crypto/krb5/src/util/ss/listen.c index fe18475447be..08427df1e5c7 100644 --- a/crypto/krb5/src/util/ss/listen.c +++ b/crypto/krb5/src/util/ss/listen.c @@ -14,6 +14,9 @@ #include <termios.h> #include <sys/param.h> +#ifdef __FreeBSD__ +#include <edit/readline/readline.h> +#else #if defined(HAVE_LIBEDIT) #include <editline/readline.h> #elif defined(HAVE_READLINE) @@ -22,6 +25,7 @@ #else #define NO_READLINE #endif +#endif static ss_data *current_info; static jmp_buf listen_jmpb; diff --git a/crypto/krb5/src/util/ss/ss_internal.h b/crypto/krb5/src/util/ss/ss_internal.h index 1f5ddfff91b5..d37d86014eb3 100644 --- a/crypto/krb5/src/util/ss/ss_internal.h +++ b/crypto/krb5/src/util/ss/ss_internal.h @@ -85,7 +85,9 @@ typedef struct _ss_data { /* init values */ #define ss_current_request(sci_idx,code_ptr) \ (*code_ptr=0,ss_info(sci_idx)->current_request) void ss_unknown_function(); +#ifndef __FreeBSD__ void ss_delete_info_dir(); +#endif char **ss_parse (int, char *, int *); ss_abbrev_info *ss_abbrev_initialize (char *, int *); void ss_page_stdin (void);