diff --git a/openldap-ldapexop-double-free.patch b/openldap-ldapexop-double-free.patch new file mode 100644 index 0000000..5d4b2dd --- /dev/null +++ b/openldap-ldapexop-double-free.patch @@ -0,0 +1,28 @@ +Segmentation fault fix caused by double free in ldapexop. + +Resolves: #699683 +Author: Jan Vcelak +Upstream: ITS #6946, git 3fcf2b1 + +diff --git a/clients/tools/ldapexop.c b/clients/tools/ldapexop.c +index f17e085..316eca1 100644 +--- a/clients/tools/ldapexop.c ++++ b/clients/tools/ldapexop.c +@@ -247,7 +247,7 @@ main( int argc, char *argv[] ) + char *retoid = NULL; + struct berval *retdata = NULL; + +- rc = ldap_parse_extended_result( ld, res, &retoid, &retdata, 1 ); ++ rc = ldap_parse_extended_result( ld, res, &retoid, &retdata, 0 ); + + if ( rc != LDAP_SUCCESS ) { + tool_perror( "ldap_parse_extended_result", rc, NULL, NULL, NULL, NULL ); +@@ -294,7 +294,7 @@ main( int argc, char *argv[] ) + printf(_("# extended operation response\n")); + } + +- rc = ldap_parse_extended_result( ld, res, &retoid, &retdata, 1 ); ++ rc = ldap_parse_extended_result( ld, res, &retoid, &retdata, 0 ); + if ( rc != LDAP_SUCCESS ) { + tool_perror( "ldap_parse_extended_result", rc, NULL, NULL, NULL, NULL ); + rc = EXIT_FAILURE; diff --git a/openldap.spec b/openldap.spec index c2113eb..045cb8f 100644 --- a/openldap.spec +++ b/openldap.spec @@ -29,6 +29,7 @@ Patch6: openldap-ldaprc-currentdir.patch Patch7: openldap-userconfig-setgid.patch Patch8: openldap-nss-nofork.patch Patch9: openldap-nss-cacertdir-soft-error.patch +Patch10: openldap-ldapexop-double-free.patch # patches for the evolution library (see README.evolution) Patch200: openldap-evolution-ntlm.patch @@ -130,6 +131,7 @@ pushd openldap-%{version} %patch7 -p1 -b .userconfig-setgid %patch8 -p1 -b .nss-nofork %patch9 -p1 -b .nss-cacertdir-soft-error +%patch10 -p1 -b .ldapexop-double-free cp %{_datadir}/libtool/config/config.{sub,guess} build/ @@ -660,6 +662,7 @@ exit 0 - fix: server scriptlets require initscripts package (#716857) - fix: connection fails if TLS_CACERTDIR doesn't exist but TLS_REQCERT is set to 'never' (#716854) +- fix: segmentation fault caused by double-free in ldapexop (#699683) * Fri Mar 18 2011 Jan Vcelak 2.4.24-2 - new: system resource limiting for slapd using ulimit