diff options
author | Douglas Bagnall <douglas.bagnall@catalyst.net.nz> | 2020-07-30 10:46:17 +1200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2020-08-03 02:51:35 +0000 |
commit | 9bf331b46a70189f2f63a5223a31eae64a9854db (patch) | |
tree | d3dbf60acc47c8e26826f47ed3e9376c59704c7a /librpc | |
parent | 326bc84c0d0f83b4429e78b6c974204116233330 (diff) | |
download | samba-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>
Diffstat (limited to 'librpc')
-rw-r--r-- | librpc/ndr/ndr_string.c | 2 |
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; |