From: Volker Lendecke Date: Mon, 13 Jan 2025 09:07:46 +0000 (+0100) Subject: dsdb: Avoid a talloc X-Git-Tag: tdb-1.4.13~107 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1fc02d575fe12d3b20948fd2052f5b219583c942;p=thirdparty%2Fsamba.git dsdb: Avoid a talloc Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source4/dsdb/samdb/ldb_modules/samba3sam.c b/source4/dsdb/samdb/ldb_modules/samba3sam.c index ebf25ac92b6..c655d5551bb 100644 --- a/source4/dsdb/samdb/ldb_modules/samba3sam.c +++ b/source4/dsdb/samdb/ldb_modules/samba3sam.c @@ -183,17 +183,19 @@ static struct ldb_val lookup_uid(struct ldb_module *module, TALLOC_CTX *ctx, con static struct ldb_val encode_sid(struct ldb_module *module, TALLOC_CTX *ctx, const struct ldb_val *val) { struct ldb_val out = data_blob(NULL, 0); - struct dom_sid *sid; + struct dom_sid sid = {}; enum ndr_err_code ndr_err; + bool ok; - sid = dom_sid_parse_talloc(ctx, (char *)val->data); - if (sid == NULL) { + ok = dom_sid_parse((char *)val->data, &sid); + if (!ok) { return out; } - ndr_err = ndr_push_struct_blob(&out, ctx, - sid, (ndr_push_flags_fn_t)ndr_push_dom_sid); - talloc_free(sid); + ndr_err = ndr_push_struct_blob(&out, + ctx, + &sid, + (ndr_push_flags_fn_t)ndr_push_dom_sid); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { return out; }