48 lines
1.7 KiB
Diff
48 lines
1.7 KiB
Diff
From 0f98c882b70a9011d488228b36df42cf320f62bf Mon Sep 17 00:00:00 2001
|
|
From: Jakub Hrozek <jhrozek@redhat.com>
|
|
Date: Fri, 19 Feb 2016 15:50:12 +0100
|
|
Subject: [PATCH 098/108] memberof: Don't allocate on a NULL context
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
https://fedorahosted.org/sssd/ticket/2959
|
|
|
|
In case no previous delete operation occured, the del_ctx->muops pointer we
|
|
allocate the diff structure was would be NULL, effectivelly leaking the
|
|
diff array during the memberof processing.
|
|
|
|
Allocating on del_ctx is safer as that pointer is always allocated and
|
|
prevents the leak.
|
|
|
|
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
|
|
(cherry picked from commit cd7a272fb361626a45d54cd45daaab4bfe7ad93f)
|
|
---
|
|
src/ldb_modules/memberof.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/ldb_modules/memberof.c b/src/ldb_modules/memberof.c
|
|
index 83d93196c34854d75fcd8ac91ad056f64b26b659..54e4b3ee2c74b746e8871cb3bb211bfcb25752e0 100644
|
|
--- a/src/ldb_modules/memberof.c
|
|
+++ b/src/ldb_modules/memberof.c
|
|
@@ -2145,7 +2145,7 @@ static int mbof_del_mod_entry(struct mbof_del_operation *delop)
|
|
if (!el || !el->num_values) {
|
|
return LDB_ERR_OPERATIONS_ERROR;
|
|
}
|
|
- diff = talloc_array(del_ctx->muops, struct ldb_dn *,
|
|
+ diff = talloc_array(del_ctx, struct ldb_dn *,
|
|
el->num_values + 1);
|
|
if (!diff) {
|
|
return LDB_ERR_OPERATIONS_ERROR;
|
|
@@ -2241,6 +2241,7 @@ static int mbof_del_mod_entry(struct mbof_del_operation *delop)
|
|
if (ret != LDB_SUCCESS) {
|
|
return ret;
|
|
}
|
|
+ talloc_steal(del_ctx->muops, diff[i]);
|
|
}
|
|
}
|
|
|
|
--
|
|
2.7.3
|
|
|