diff options
author | Stefan Metzmacher <metze@samba.org> | 2014-07-16 16:17:56 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2014-07-19 05:25:11 +0200 |
commit | 1a9a02d15a3684023d24b4c237d17a4ff832eff4 (patch) | |
tree | b504328a4ffd6cee987ac2400f64e88629ac33ad | |
parent | 6526cb7a94a12bf911c58072debb7aec69975dd0 (diff) | |
download | samba-1a9a02d15a3684023d24b4c237d17a4ff832eff4.tar.gz |
ldb-samba: fix a memory leak in ldif_canonicalise_objectCategory()
Searches for '(objectCategory=Person)' will leak a ldb_dn structure
on the ldb_context. These searches are typically used by Zarafa.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10469
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Thu Jul 17 00:51:57 CEST 2014 on sn-devel-104
(cherry picked from commit 8d33cddcb001a5a78aca036161d6223268274211)
Autobuild-User(v4-1-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-1-test): Sat Jul 19 05:25:12 CEST 2014 on sn-devel-104
-rw-r--r-- | lib/ldb-samba/ldif_handlers.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/ldb-samba/ldif_handlers.c b/lib/ldb-samba/ldif_handlers.c index c7385f654a8..93cce292281 100644 --- a/lib/ldb-samba/ldif_handlers.c +++ b/lib/ldb-samba/ldif_handlers.c @@ -483,8 +483,13 @@ static int ldif_canonicalise_objectCategory(struct ldb_context *ldb, void *mem_c const char *lDAPDisplayName = talloc_strndup(tmp_ctx, (char *)in->data, in->length); sclass = dsdb_class_by_lDAPDisplayName(schema, lDAPDisplayName); if (sclass) { - struct ldb_dn *dn = ldb_dn_new(mem_ctx, ldb, + struct ldb_dn *dn = ldb_dn_new(tmp_ctx, ldb, sclass->defaultObjectCategory); + if (dn == NULL) { + talloc_free(tmp_ctx); + return LDB_ERR_OPERATIONS_ERROR; + } + *out = data_blob_string_const(ldb_dn_alloc_casefold(mem_ctx, dn)); talloc_free(tmp_ctx); |