From 31461743b66e562db67e9e7422712a91d27d52da Mon Sep 17 00:00:00 2001 From: arcnmx Date: Tue, 9 Apr 2024 11:06:15 -0700 Subject: [PATCH] fix(idp): 389ds patches --- overlays/krb5.nix | 25 ++++++++++++++++++++++++- packages/389-ds-base-fix.patch | 24 ++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 packages/389-ds-base-fix.patch diff --git a/overlays/krb5.nix b/overlays/krb5.nix index dc0c6f65..bee778ee 100644 --- a/overlays/krb5.nix +++ b/overlays/krb5.nix @@ -1,5 +1,28 @@ -final: prev: { +final: prev: let + inherit (final) lib; +in { krb5-ldap = final.krb5.override { withLdap = true; }; + _389-ds-base = let + inherit (prev) _389-ds-base; + drv = _389-ds-base.overrideAttrs (old: { + patches = old.patches or [ ] ++ [ + ../packages/389-ds-base-fix.patch + (final.fetchpatch { + name = "389-ds-base-5973-f_un.patch"; + url = "https://github.com/389ds/389-ds-base/pull/5974.patch"; + sha256 = "sha256-WtctQPZVZSAbPg2tjY7wD8ysI4SKkfyS5tQx0NPhSmY="; + }) + (final.fetchpatch { + name = "389-ds-base-5962-f_un.patch"; + url = "https://github.com/389ds/389-ds-base/pull/6089.patch"; + sha256 = "sha256-b0HSaDjuEUKERIXKg8np+lZDdZNmrCTAXybJzF+0hq0="; + }) + ]; + meta = old.meta // { + broken = false; + }; + }); + in if _389-ds-base.meta.broken or false && _389-ds-base.version == "2.4.3" then drv else lib.warn "389-ds patch/overlay no longer needed" _389-ds-base; } diff --git a/packages/389-ds-base-fix.patch b/packages/389-ds-base-fix.patch new file mode 100644 index 00000000..5ff92243 --- /dev/null +++ b/packages/389-ds-base-fix.patch @@ -0,0 +1,24 @@ +diff --git a/ldap/servers/slapd/back-ldbm/cache.c b/ldap/servers/slapd/back-ldbm/cache.c +index 0dd53d72b..782987195 100644 +--- a/ldap/servers/slapd/back-ldbm/cache.c ++++ b/ldap/servers/slapd/back-ldbm/cache.c +@@ -533,7 +533,6 @@ dbgec_test_if_entry_pointer_is_valid(void *e, void *prev, int slot, int line) + */ + slapi_log_err(SLAPI_LOG_FATAL, "dbgec_test_if_entry_pointer_is_valid", "cache.c[%d]: Wrong entry address: %p Previous entry address is: %p hash table slot is %d\n", line, e, prev, slot); + slapi_log_backtrace(SLAPI_LOG_FATAL); +- *(char*)23 = 1; /* abort() somehow corrupt gdb stack backtrace so lets generate a SIGSEGV */ + abort(); + } + } +diff --git a/ldap/servers/slapd/tools/dbscan.c b/ldap/servers/slapd/tools/dbscan.c +index abfd0113b..159096bd5 100644 +--- a/ldap/servers/slapd/tools/dbscan.c ++++ b/ldap/servers/slapd/tools/dbscan.c +@@ -1127,7 +1127,6 @@ importdb(const char *dbimpl_name, const char *filename, const char *dump_name) + + if (!dump) { + printf("Failed to open dump file %s. Error %d: %s\n", dump_name, errno, strerror(errno)); +- fclose(dump); + return 1; + } +