[389-commits] Branch '389-ds-base-1.3.2' - ldap/servers

Mark Reynolds mreynolds at fedoraproject.org
Wed Jun 18 19:36:43 UTC 2014


 ldap/servers/slapd/back-ldbm/ldbm_add.c    |    6 ++++--
 ldap/servers/slapd/back-ldbm/ldbm_delete.c |    3 ++-
 ldap/servers/slapd/back-ldbm/ldbm_modify.c |    1 +
 ldap/servers/slapd/back-ldbm/ldbm_modrdn.c |    1 +
 4 files changed, 8 insertions(+), 3 deletions(-)

New commits:
commit dd51540a4915857a6d9beb55b44ad2b7d4bb8cac
Author: Mark Reynolds <mreynolds at redhat.com>
Date:   Tue Jun 17 17:58:54 2014 -0400

    Ticket 47817 - The error result text message should be obtained just prior to sending result
    
    Bug Description:  We do not get pblock result message after the betxn postop plugins
                      are called.  If a betxn plugin modified the ldap result message, then
                      when the backend returns the results it does an invalid read on the
                      old pointer of the old result message.
    
    Fix Description:  Get the result message after we call the betxn postop plugins.
    
    https://fedorahosted.org/389/ticket/47817
    
    jenkins: passed
    
    Reviewed by: nhosoi(Thanks!)
    
    (cherry picked from commit 68e766891d1067b2b86bd48bfa16d0837fa5a737)

diff --git a/ldap/servers/slapd/back-ldbm/ldbm_add.c b/ldap/servers/slapd/back-ldbm/ldbm_add.c
index 0dcb158..0a7d006 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_add.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_add.c
@@ -94,8 +94,8 @@ ldbm_back_add( Slapi_PBlock *pb )
 	char *msg;
 	int	managedsait;
 	int	ldap_result_code = LDAP_SUCCESS;
-	char *ldap_result_message= NULL;
-	char *ldap_result_matcheddn= NULL;
+	char *ldap_result_message = NULL;
+	char *ldap_result_matcheddn = NULL;
 	int	retry_count = 0;
 	int	disk_full = 0;
 	modify_context parent_modify_c = {0};
@@ -1225,6 +1225,8 @@ diskfull_return:
 					/* tell frontend not to free this entry */
 					slapi_pblock_set(pb, SLAPI_ADD_ENTRY, NULL);
 				}
+
+				slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
 			}
 
 			/* Release SERIAL LOCK */
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
index 915ea08..39fe706 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
@@ -75,7 +75,7 @@ ldbm_back_delete( Slapi_PBlock *pb )
 	modify_context ruv_c = {0};
 	int rc = 0;
 	int ldap_result_code= LDAP_SUCCESS;
-	char *ldap_result_message= NULL;
+	char *ldap_result_message = NULL;
 	Slapi_DN *sdnp = NULL;
 	char *e_uniqueid = NULL;
 	Slapi_DN nscpEntrySDN;
@@ -1331,6 +1331,7 @@ error_return:
 			if (!opreturn) {
 				slapi_pblock_set( pb, SLAPI_PLUGIN_OPRETURN, ldap_result_code ? &ldap_result_code : &retval );
 			}
+			slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
 		}
 
 		/* Release SERIAL LOCK */
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modify.c b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
index d2dc983..8791b45 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_modify.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
@@ -901,6 +901,7 @@ error_return:
 				LDAPDebug1Arg( LDAP_DEBUG_TRACE, "SLAPI_PLUGIN_BE_TXN_POST_MODIFY_FN plugin "
 							   "returned error code %d\n", retval );
 				slapi_pblock_get(pb, SLAPI_RESULT_CODE, &ldap_result_code);
+				slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
 				slapi_pblock_get(pb, SLAPI_PLUGIN_OPRETURN, &opreturn);
 				if (!opreturn) {
 					slapi_pblock_set(pb, SLAPI_PLUGIN_OPRETURN, ldap_result_code ? &ldap_result_code : &retval);
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
index 71056bb..57590cb 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modrdn.c
@@ -1397,6 +1397,7 @@ error_return:
                 if (!opreturn) {
                     slapi_pblock_set( pb, SLAPI_PLUGIN_OPRETURN, ldap_result_code ? &ldap_result_code : &retval );
                 }
+                slapi_pblock_get(pb, SLAPI_PB_RESULT_TEXT, &ldap_result_message);
             }
 
             /* Release SERIAL LOCK */




More information about the 389-commits mailing list