s3-libndr: make sure ndr_pull_string_array() only inspects string termination flags.
authorGünther Deschner <gd@samba.org>
Thu, 13 May 2010 00:27:29 +0000 (02:27 +0200)
committerGünther Deschner <gd@samba.org>
Fri, 14 May 2010 11:20:40 +0000 (13:20 +0200)
Otherwise the NOTERM case is not reachable for ascii strings (only utf16).

With this patch we now can have:
[flag(STR_ASCII|STR_NOTERM|NDR_REMAINING)] string_array array_name;

Guenther

source3/librpc/ndr/ndr_string.c

index 519be7b1a037e9f8cb5d10479bf56b46fb8f5c3f..b4891e3c1fd09340158b45516a6e32510d95f605 100644 (file)
@@ -452,7 +452,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string_array(struct ndr_pull *ndr, int ndr_f
                return NDR_ERR_SUCCESS;
        }
 
-       switch (flags & LIBNDR_STRING_FLAGS) {
+       switch (flags & (LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_STR_NOTERM)) {
        case LIBNDR_FLAG_STR_NULLTERM:
                /* 
                 * here the strings are null terminated