gnu: mit-krb5: Fix segfault in gsasl test suite.
* gnu/packages/patches/mit-krb5-qualify-short-hostnames.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/kerberos.scm (mit-krb5)[source](patches): New field.
This commit is contained in:
parent
641b9c51b7
commit
e59d958a9c
@ -1187,6 +1187,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
|
||||
%D%/packages/patches/minisat-friend-declaration.patch \
|
||||
%D%/packages/patches/minisat-install.patch \
|
||||
%D%/packages/patches/mit-krb5-qualify-short-hostnames.patch \
|
||||
%D%/packages/patches/mpc123-initialize-ao.patch \
|
||||
%D%/packages/patches/module-init-tools-moduledir.patch \
|
||||
%D%/packages/patches/monero-use-system-miniupnpc.patch \
|
||||
|
@ -60,6 +60,7 @@
|
||||
(string-append "https://kerberos.org/dist/krb5/"
|
||||
(version-major+minor version)
|
||||
"/krb5-" version ".tar.gz")))
|
||||
(patches (search-patches "mit-krb5-qualify-short-hostnames.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"121c5xsy3x0i4wdkrpw62yhvji6virbh6n30ypazkp0isws3k4bk"))))
|
||||
|
29
gnu/packages/patches/mit-krb5-qualify-short-hostnames.patch
Normal file
29
gnu/packages/patches/mit-krb5-qualify-short-hostnames.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Fix a null pointer dereference when no DNS search path is configured.
|
||||
This showed up as a segfault while running the gsasl test suite.
|
||||
|
||||
Taken from upstream:
|
||||
https://github.com/krb5/krb5/commit/cd82bf377e7fad2409c76bf8b241920692f34fda
|
||||
|
||||
diff --git a/src/lib/krb5/os/dnsglue.c b/src/lib/krb5/os/dnsglue.c
|
||||
index e35ca9d76c..0cd213fdd7 100644
|
||||
--- a/src/lib/krb5/os/dnsglue.c
|
||||
+++ b/src/lib/krb5/os/dnsglue.c
|
||||
@@ -91,7 +91,7 @@ static int initparse(struct krb5int_dns_state *);
|
||||
#define DECLARE_HANDLE(h) struct __res_state h
|
||||
#define INIT_HANDLE(h) (memset(&h, 0, sizeof(h)), res_ninit(&h) == 0)
|
||||
#define SEARCH(h, n, c, t, a, l) res_nsearch(&h, n, c, t, a, l)
|
||||
-#define PRIMARY_DOMAIN(h) strdup(h.dnsrch[0])
|
||||
+#define PRIMARY_DOMAIN(h) ((h.dnsrch[0] == NULL) ? NULL : strdup(h.dnsrch[0]))
|
||||
#if HAVE_RES_NDESTROY
|
||||
#define DESTROY_HANDLE(h) res_ndestroy(&h)
|
||||
#else
|
||||
@@ -104,7 +104,8 @@ static int initparse(struct krb5int_dns_state *);
|
||||
#define DECLARE_HANDLE(h)
|
||||
#define INIT_HANDLE(h) (res_init() == 0)
|
||||
#define SEARCH(h, n, c, t, a, l) res_search(n, c, t, a, l)
|
||||
-#define PRIMARY_DOMAIN(h) strdup(_res.defdname)
|
||||
+#define PRIMARY_DOMAIN(h) \
|
||||
+ ((_res.defdname == NULL) ? NULL : strdup(_res.defdname))
|
||||
#define DESTROY_HANDLE(h)
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user