summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>2020-07-30 10:46:17 +1200
committerAndrew Bartlett <abartlet@samba.org>2020-08-03 02:51:35 +0000
commit9bf331b46a70189f2f63a5223a31eae64a9854db (patch)
treed3dbf60acc47c8e26826f47ed3e9376c59704c7a
parent326bc84c0d0f83b4429e78b6c974204116233330 (diff)
downloadsamba-9bf331b46a70189f2f63a5223a31eae64a9854db.tar.gz
ndr: maintain proper talloc tree in pull_string_array
We don't want to leave other parts of the ndr struct hanging off this string array just because LIBNDR_FLAG_REMAINING is used. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Noel Power <npower@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r--librpc/ndr/ndr_string.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/librpc/ndr/ndr_string.c b/librpc/ndr/ndr_string.c
index 25f211b2ad3..4fd2006be20 100644
--- a/librpc/ndr/ndr_string.c
+++ b/librpc/ndr/ndr_string.c
@@ -380,12 +380,12 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int ndr_f
tmp_ctx = ndr->current_mem_ctx;
ndr->current_mem_ctx = a;
NDR_CHECK(ndr_pull_string(ndr, ndr_flags, &s));
+ ndr->current_mem_ctx = tmp_ctx;
if ((ndr->data_size - ndr->offset) == 0 && ndr->flags & LIBNDR_FLAG_REMAINING)
{
a[count] = s;
break;
}
- ndr->current_mem_ctx = tmp_ctx;
if (strcmp("", s)==0) {
a[count] = NULL;
break;