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 <[email protected]> --- .../openldap/openldap-2.4.39/thread_stub.patch | 20 ++++++++++++++++++++ .../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 0000000..540ba4a --- /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 <[email protected]> + + +--- 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 e2c700f..0183d02 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" -- 1.7.9.5 -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
