r9300: cope with zero length in ndr_pull_charset()
authorAndrew Tridgell <tridge@samba.org>
Sat, 13 Aug 2005 03:17:18 +0000 (03:17 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:33:22 +0000 (13:33 -0500)
(This used to be commit 1ae255aba44f4444486ae5bc634c8ab1a6328c87)

source4/librpc/ndr/ndr_string.c

index 11397aaafd048940ececec238c1e73b20c745994..50fa887a34270e6bd0e49314e4e9cec108e2a79b 100644 (file)
@@ -621,6 +621,10 @@ NTSTATUS ndr_check_string_terminator(struct ndr_pull *ndr, const void *_var, uin
 NTSTATUS ndr_pull_charset(struct ndr_pull *ndr, int ndr_flags, const char **var, uint32_t length, uint8_t byte_mul, int chset)
 {
        int ret;
+       if (length == 0) {
+               *var = talloc_strdup(ndr, "");
+               return NT_STATUS_OK;
+       }
        NDR_PULL_NEED_BYTES(ndr, length*byte_mul);
        ret = convert_string_talloc(ndr, chset, CH_UNIX, 
                                    ndr->data+ndr->offset,