From: Douglas Bagnall Date: Fri, 29 Dec 2023 02:15:48 +0000 (+1300) Subject: ndr: skip talloc when pulling empty DATA_BLOB X-Git-Tag: tdb-1.4.11~1807 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=c2673b02a7a51761e8b6631eb0c0e7062cbbed7b;p=thirdparty%2Fsamba.git ndr: skip talloc when pulling empty DATA_BLOB Signed-off-by: Douglas Bagnall Reviewed-by: Andrew Bartlett BUG: https://bugzilla.samba.org/show_bug.cgi?id=15574 --- diff --git a/librpc/ndr/ndr_basic.c b/librpc/ndr/ndr_basic.c index fc8620f28c7..5fd15730a74 100644 --- a/librpc/ndr/ndr_basic.c +++ b/librpc/ndr/ndr_basic.c @@ -1453,6 +1453,12 @@ _PUBLIC_ enum ndr_err_code ndr_pull_DATA_BLOB(struct ndr_pull *ndr, ndr_flags_ty } else { NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &length)); } + if (length == 0) { + /* skip the talloc for an empty blob */ + blob->data = NULL; + blob->length = 0; + return NDR_ERR_SUCCESS; + } NDR_PULL_NEED_BYTES(ndr, length); *blob = data_blob_talloc(ndr->current_mem_ctx, ndr->data+ndr->offset, length); ndr->offset += length;