Author: abartlet Date: 2006-01-31 03:20:18 +0000 (Tue, 31 Jan 2006) New Revision: 13253
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=13253 Log: More work to ensure that we don't keep data on long-term contexts. Andrew Bartlett Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/kludge_acl.c Changeset: Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/kludge_acl.c =================================================================== --- branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/kludge_acl.c 2006-01-31 03:15:16 UTC (rev 13252) +++ branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/kludge_acl.c 2006-01-31 03:20:18 UTC (rev 13253) @@ -199,6 +199,7 @@ talloc_free(mem_ctx); return ret; } + talloc_steal(mem_ctx, res); if (res->count == 0) { talloc_free(mem_ctx); data->password_attrs = NULL; @@ -206,6 +207,7 @@ } if (res->count > 1) { + talloc_free(mem_ctx); return LDB_ERR_CONSTRAINT_VIOLATION; } @@ -213,10 +215,12 @@ password_attributes = ldb_msg_find_element(msg, "passwordAttribute"); if (!password_attributes) { + talloc_free(mem_ctx); return LDB_SUCCESS; } data->password_attrs = talloc_array(data, const char *, password_attributes->num_values + 1); if (!data->password_attrs) { + talloc_free(mem_ctx); return LDB_ERR_OPERATIONS_ERROR; } for (i=0; i < password_attributes->num_values; i++) { @@ -224,6 +228,7 @@ talloc_steal(data->password_attrs, password_attributes->values[i].data); } data->password_attrs[i] = NULL; + talloc_free(mem_ctx); return LDB_SUCCESS; }