1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

libcli/auth: let msrpc_parse() return talloc'ed empty strings

This make it more predictable for the callers.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11912
BUG: https://bugzilla.redhat.com/show_bug.cgi?id=1334356
BUG: https://launchpad.net/bugs/1578576

Signed-off-by: Stefan Metzmacher <metze@samba.org>

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Mon May  9 22:27:21 CEST 2016 on sn-devel-144
This commit is contained in:
Stefan Metzmacher 2016-05-09 16:14:31 +02:00
parent a3f3a6c354
commit 58a8323629

View File

@ -262,7 +262,11 @@ bool msrpc_parse(TALLOC_CTX *mem_ctx,
ps = va_arg(ap, char **);
if (len1 == 0 && len2 == 0) {
*ps = (char *)discard_const("");
*ps = talloc_strdup(mem_ctx, "");
if (*ps == NULL) {
ret = false;
goto cleanup;
}
} else {
/* make sure its in the right format - be strict */
if ((len1 != len2) || (ptr + len1 < ptr) || (ptr + len1 < len1) || (ptr + len1 > blob->length)) {
@ -289,7 +293,11 @@ bool msrpc_parse(TALLOC_CTX *mem_ctx,
goto cleanup;
}
} else {
(*ps) = (char *)discard_const("");
*ps = talloc_strdup(mem_ctx, "");
if (*ps == NULL) {
ret = false;
goto cleanup;
}
}
}
break;
@ -302,7 +310,11 @@ bool msrpc_parse(TALLOC_CTX *mem_ctx,
ps = (char **)va_arg(ap, char **);
/* make sure its in the right format - be strict */
if (len1 == 0 && len2 == 0) {
*ps = (char *)discard_const("");
*ps = talloc_strdup(mem_ctx, "");
if (*ps == NULL) {
ret = false;
goto cleanup;
}
} else {
if ((len1 != len2) || (ptr + len1 < ptr) || (ptr + len1 < len1) || (ptr + len1 > blob->length)) {
ret = false;
@ -325,7 +337,11 @@ bool msrpc_parse(TALLOC_CTX *mem_ctx,
goto cleanup;
}
} else {
(*ps) = (char *)discard_const("");
*ps = talloc_strdup(mem_ctx, "");
if (*ps == NULL) {
ret = false;
goto cleanup;
}
}
}
break;