From 11ba2ed4472cdf7de0ccf9b41d7d301d9695c9dc Mon Sep 17 00:00:00 2001 From: Jennifer Sutton Date: Wed, 28 May 2025 12:52:26 +1200 Subject: [PATCH] third_party/heimdal: Import lorikeet-heimdal-202505280044 (commit 1be8ce37d618704abd82a2aa06058fa96845ad41) BUG: https://bugzilla.samba.org/show_bug.cgi?id=15814 Signed-off-by: Jennifer Sutton Reviewed-by: Douglas Bagnall Autobuild-User(master): Douglas Bagnall Autobuild-Date(master): Tue Jun 3 22:52:34 UTC 2025 on atb-devel-224 --- third_party/heimdal/cf/resolv.m4 | 4 +-- third_party/heimdal/kdc/krb5tgs.c | 5 ++++ third_party/heimdal/lib/base/config_file.c | 33 +++++++++++++--------- third_party/heimdal/lib/gssapi/Makefile.am | 1 + third_party/heimdal/lib/krb5/Makefile.am | 2 ++ third_party/heimdal/lib/roken/Makefile.am | 1 + 6 files changed, 30 insertions(+), 16 deletions(-) diff --git a/third_party/heimdal/cf/resolv.m4 b/third_party/heimdal/cf/resolv.m4 index 49c868ab0ec..62949727589 100644 --- a/third_party/heimdal/cf/resolv.m4 +++ b/third_party/heimdal/cf/resolv.m4 @@ -73,13 +73,13 @@ AC_FIND_FUNC(res_ndestroy, resolv, ], [0]) -AC_FIND_FUNC_NO_LIBS(dns_search,, +AC_FIND_FUNC(dns_search, resolv, [ #ifdef HAVE_DNS_H #include #endif ], -[0,0,0,0,0,0,0,0]) +[0]) AC_FIND_FUNC(dn_expand, resolv, diff --git a/third_party/heimdal/kdc/krb5tgs.c b/third_party/heimdal/kdc/krb5tgs.c index f8fe63d88d7..07fdcca3970 100644 --- a/third_party/heimdal/kdc/krb5tgs.c +++ b/third_party/heimdal/kdc/krb5tgs.c @@ -2289,6 +2289,11 @@ out: free(csec); free(cusec); + if (r->ek.encrypted_pa_data) { + free_METHOD_DATA(r->ek.encrypted_pa_data); + free(r->ek.encrypted_pa_data); + } + free_TGS_REP(&r->rep); free_TransitedEncoding(&r->et.transited); free(r->et.starttime); diff --git a/third_party/heimdal/lib/base/config_file.c b/third_party/heimdal/lib/base/config_file.c index b1675ea5f14..7ea7a99cacf 100644 --- a/third_party/heimdal/lib/base/config_file.c +++ b/third_party/heimdal/lib/base/config_file.c @@ -312,6 +312,11 @@ parse_plist_config(heim_context context, const char *path, heim_config_section * CFRelease(url); if (s == NULL) { heim_clear_error_message(context); + if (path[0] != '/') { + char cwd[PATH_MAX]; + if (getcwd(cwd, sizeof(cwd)) == NULL) + return errno; + } return ENOMEM; } @@ -571,6 +576,7 @@ heim_config_parse_file_multi(heim_context context, { const char *str; char *newfname = NULL; + char *exp_fname = NULL; unsigned lineno = 0; heim_error_code ret = 0; struct fileptr f; @@ -603,6 +609,19 @@ heim_config_parse_file_multi(heim_context context, fname = newfname; } + /* + * Note that heim_config_parse_dir_multi() doesn't want tokens + * expanded here, but it happens to limit the names of files to + * include such that there can be no tokens to expand. Don't + * add token expansion for tokens using _, say. + */ + ret = heim_expand_path_tokens(context, fname, 1, &exp_fname, NULL); + if (ret) + goto out; + free(newfname); + fname = newfname = exp_fname; + + if (is_plist_file(fname)) { #if defined(HAVE_FRAMEWORK_COREFOUNDATION) ret = parse_plist_config(context, fname, res); @@ -618,20 +637,6 @@ heim_config_parse_file_multi(heim_context context, goto out; #endif } else { - char *exp_fname = NULL; - - /* - * Note that heim_config_parse_dir_multi() doesn't want tokens - * expanded here, but it happens to limit the names of files to - * include such that there can be no tokens to expand. Don't - * add token expansion for tokens using _, say. - */ - ret = heim_expand_path_tokens(context, fname, 1, &exp_fname, NULL); - if (ret) - goto out; - free(newfname); - fname = newfname = exp_fname; - f.context = context; f.f = fopen(fname, "r"); f.s = NULL; diff --git a/third_party/heimdal/lib/gssapi/Makefile.am b/third_party/heimdal/lib/gssapi/Makefile.am index 3254866dced..db967e58663 100644 --- a/third_party/heimdal/lib/gssapi/Makefile.am +++ b/third_party/heimdal/lib/gssapi/Makefile.am @@ -403,6 +403,7 @@ LDADD = libgssapi.la \ $(top_builddir)/lib/krb5/libkrb5.la \ $(LIB_roken) +test_names_LDFLAGS = -lresolv test_names_LDADD = $(LDADD) $(top_builddir)/lib/asn1/libasn1.la test_context_LDADD = $(LDADD) $(top_builddir)/lib/asn1/libasn1.la $(top_builddir)/lib/wind/libwind.la diff --git a/third_party/heimdal/lib/krb5/Makefile.am b/third_party/heimdal/lib/krb5/Makefile.am index ecce461dd89..e22cfe87ce2 100644 --- a/third_party/heimdal/lib/krb5/Makefile.am +++ b/third_party/heimdal/lib/krb5/Makefile.am @@ -330,6 +330,8 @@ test_rfc3961_LDADD = \ $(LIB_hcrypto) \ $(LIB_roken) +test_plugin_LDFLAGS = -lresolv + if DEVELOPER_MODE headerdeps = $(dist_libkrb5_la_SOURCES) endif diff --git a/third_party/heimdal/lib/roken/Makefile.am b/third_party/heimdal/lib/roken/Makefile.am index 1f530c7aee5..8350d70348d 100644 --- a/third_party/heimdal/lib/roken/Makefile.am +++ b/third_party/heimdal/lib/roken/Makefile.am @@ -54,6 +54,7 @@ libtest_la_CFLAGS = -DTEST_SNPRINTF -DTEST_STRPFTIME parse_reply_test_SOURCES = parse_reply-test.c resolve.c parse_reply_test_CFLAGS = -DTEST_RESOLVE +parse_reply_test_LDFLAGS = -lresolv test_readenv_SOURCES = test-readenv.c test-mem.c test_auxval_SOURCES = test-auxval.c -- 2.47.2