summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Kinder <nkinder@redhat.com>2010-09-13 08:10:29 -0700
committerNathan Kinder <nkinder@redhat.com>2010-09-13 08:10:29 -0700
commit96cf8e3d42a2c04df7284654fabb31989c58a892 (patch)
tree7023967b8cb85c868da4a009342d30c4b66b9396
parentb99854b931155e4cbaa24e72b3df7debe0418b56 (diff)
downloadds-96cf8e3d42a2c04df7284654fabb31989c58a892.tar.gz
ds-96cf8e3d42a2c04df7284654fabb31989c58a892.tar.xz
ds-96cf8e3d42a2c04df7284654fabb31989c58a892.zip
Bug 630091 - (cov#15514) Initialize DBT in entryrdn_get_parent()
In entryrdn_get_parent(), there is a DBT structure that we can use without initializing. If we goto the bail label, we try to free data.data, but data was never initialized. We should clear the memory used by data in the beginning of the function before we have an opportunity to goto bail.
-rw-r--r--ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c b/ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c
index daa116ae..20779994 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_entryrdn.c
@@ -1189,6 +1189,9 @@ entryrdn_get_parent(backend *be,
slapi_log_error(SLAPI_LOG_TRACE, ENTRYRDN_TAG,
"--> entryrdn_get_parent\n");
+ /* Initialize data */
+ memset(&data, 0, sizeof(data));
+
if (NULL == be || NULL == rdn || 0 == id || NULL == prdn || NULL == pid) {
slapi_log_error(SLAPI_LOG_FATAL, ENTRYRDN_TAG,
"entryrdn_get_parent: Param error: Empty %s\n",
@@ -1232,7 +1235,6 @@ entryrdn_get_parent(backend *be,
slapi_ch_free_string(&orignrdn);
}
- memset(&data, 0, sizeof(data));
data.flags = DB_DBT_MALLOC;
/* Setting up a key for the node to get its parent */