diff options
author | Andrew Bartlett <abartlet@samba.org> | 2010-09-04 14:05:30 +1000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2010-09-14 14:48:48 -0700 |
commit | 9d44688681bc196baf1bccbdf84092ffc0510bb7 (patch) | |
tree | 3d8f26928981b5a24e2cc454382065cf36d5cdd9 | |
parent | ce1e273a47105fcef71d054c0192b7985fd5b4f2 (diff) | |
download | samba-9d44688681bc196baf1bccbdf84092ffc0510bb7.tar.gz samba-9d44688681bc196baf1bccbdf84092ffc0510bb7.tar.bz2 samba-9d44688681bc196baf1bccbdf84092ffc0510bb7.zip |
s3-util_sid Accept S-1-5 as a SID
-rw-r--r-- | source3/lib/util_sid.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c index 58df0f2a48..9a2876baec 100644 --- a/source3/lib/util_sid.c +++ b/source3/lib/util_sid.c @@ -230,8 +230,12 @@ bool string_to_sid(struct dom_sid *sidout, const char *sidstr) } /* get identauth */ - if (!q || (*q != '-')) { conv = (uint32_t) strtoul(q, &q, 10); + if (!q) { + goto format_error; + } else if (*q == '\0') { + /* Just id_auth, no subauths */ + } else if (*q != '-') { goto format_error; } /* identauth in decimal should be < 2^32 */ @@ -243,8 +247,12 @@ bool string_to_sid(struct dom_sid *sidout, const char *sidstr) sidout->id_auth[4] = (conv & 0x0000ff00) >> 8; sidout->id_auth[5] = (conv & 0x000000ff); - q++; sidout->num_auths = 0; + if (*q == '\0') { + return true; + } + + q++; while (true) { char *end; |