summaryrefslogtreecommitdiff
path: root/libcli/security/util_sid.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcli/security/util_sid.c')
-rw-r--r--libcli/security/util_sid.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libcli/security/util_sid.c b/libcli/security/util_sid.c
index 531d3809565..4a186d69cda 100644
--- a/libcli/security/util_sid.c
+++ b/libcli/security/util_sid.c
@@ -300,7 +300,8 @@ void sid_copy(struct dom_sid *dst, const struct dom_sid *src)
Parse a on-the-wire SID to a struct dom_sid.
*****************************************************************/
-bool sid_parse(const uint8_t *inbuf, size_t len, struct dom_sid *sid)
+struct sid_parse_ret sid_parse(
+ const uint8_t *inbuf, size_t len, struct dom_sid *sid)
{
DATA_BLOB in = data_blob_const(inbuf, len);
enum ndr_err_code ndr_err;
@@ -308,9 +309,9 @@ bool sid_parse(const uint8_t *inbuf, size_t len, struct dom_sid *sid)
ndr_err = ndr_pull_struct_blob_all(
&in, NULL, sid, (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
- return false;
+ return (struct sid_parse_ret) { .len = -1 };
}
- return true;
+ return (struct sid_parse_ret) { .len = ndr_size_dom_sid(sid, 0) };
}
/*****************************************************************