From 6abfe21a2aaf5daa9ddca36fcd36c3f65febb230 Mon Sep 17 00:00:00 2001 From: Joe Slater Date: Tue, 10 Mar 2015 10:54:04 -0700 Subject: openldap: fix uninitialized ptr access problem To be safe, the ldap_pvt_thread_pool_getkey() function should always set the data parameter. If this is not done, slapd can segfault during shutdown. Signed-off-by: Joe Slater Signed-off-by: Martin Jansa --- .../openldap/openldap-2.4.39/thread_stub.patch | 20 ++++++++++++++++++++ meta-oe/recipes-support/openldap/openldap_2.4.39.bb | 1 + 2 files changed, 21 insertions(+) create mode 100644 meta-oe/recipes-support/openldap/openldap-2.4.39/thread_stub.patch diff --git a/meta-oe/recipes-support/openldap/openldap-2.4.39/thread_stub.patch b/meta-oe/recipes-support/openldap/openldap-2.4.39/thread_stub.patch new file mode 100644 index 0000000000..540ba4a635 --- /dev/null +++ b/meta-oe/recipes-support/openldap/openldap-2.4.39/thread_stub.patch @@ -0,0 +1,20 @@ +openldap: set pointer + +When the function ldap_pvt_thread_pool_getkey() succeeds, it +must set the value of *data since the caller may try to use it. + +Upstream-Status: pending + +Signed-off-by: Joe Slater + + +--- a/libraries/libldap_r/thr_stub.c ++++ b/libraries/libldap_r/thr_stub.c +@@ -217,6 +217,7 @@ ldap_pvt_thread_pool_unidle ( ldap_pvt_t + int ldap_pvt_thread_pool_getkey ( + void *ctx, void *key, void **data, ldap_pvt_thread_pool_keyfree_t **kfree ) + { ++ if (data) *data = NULL; /* avoid problems with uninitialized *data */ + return(0); + } + diff --git a/meta-oe/recipes-support/openldap/openldap_2.4.39.bb b/meta-oe/recipes-support/openldap/openldap_2.4.39.bb index e2c700f1d6..0183d029d4 100644 --- a/meta-oe/recipes-support/openldap/openldap_2.4.39.bb +++ b/meta-oe/recipes-support/openldap/openldap_2.4.39.bb @@ -25,6 +25,7 @@ SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \ file://use-urandom.patch \ file://initscript \ file://slapd.service \ + file://thread_stub.patch \ " SRC_URI[md5sum] = "b0d5ee4b252c841dec6b332d679cf943" SRC_URI[sha256sum] = "8267c87347103fef56b783b24877c0feda1063d3cb85d070e503d076584bf8a7" -- cgit 1.2.3-korg