summaryrefslogtreecommitdiff
path: root/source3/rpc_parse
diff options
context:
space:
mode:
authorMartin Pool <mbp@samba.org>2003-02-18 01:30:22 +0000
committerMartin Pool <mbp@samba.org>2003-02-18 01:30:22 +0000
commit49c3018cbc5e85d5c492d20263edffd0f1bc7246 (patch)
tree028874e6e20e51a8f28c7b47dd798e1cc735a43f /source3/rpc_parse
parent5511347b8d5a974d5cd0536eded92c4b77c1091d (diff)
downloadsamba-49c3018cbc5e85d5c492d20263edffd0f1bc7246.tar.gz
samba-49c3018cbc5e85d5c492d20263edffd0f1bc7246.tar.bz2
samba-49c3018cbc5e85d5c492d20263edffd0f1bc7246.zip
init_dom_sid2s: Check return code from string_to_sid. Skip tokens
that are not valid SIDs. (This used to be commit 5a597272782b74d28859ba98027fe9ff9c278086)
Diffstat (limited to 'source3/rpc_parse')
-rw-r--r--source3/rpc_parse/parse_net.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/source3/rpc_parse/parse_net.c b/source3/rpc_parse/parse_net.c
index 1e31836476..53f660fcc3 100644
--- a/source3/rpc_parse/parse_net.c
+++ b/source3/rpc_parse/parse_net.c
@@ -873,10 +873,12 @@ static int init_dom_sid2s(TALLOC_CTX *ctx, const char *sids_str, DOM_SID2 **ppsi
int number;
DOM_SID2 *sids;
- /* Count the number of SIDs. */
- for (count = 0, ptr = sids_str;
- next_token(&ptr, s2, NULL, sizeof(s2)); count++)
- ;
+ /* Count the number of valid SIDs. */
+ for (count = 0, ptr = sids_str; next_token(&ptr, s2, NULL, sizeof(s2)); ) {
+ DOM_SID tmpsid;
+ if (string_to_sid(&tmpsid, s2))
+ count++;
+ }
/* Now allocate space for them. */
*ppsids = (DOM_SID2 *)talloc_zero(ctx, count * sizeof(DOM_SID2));
@@ -885,11 +887,13 @@ static int init_dom_sid2s(TALLOC_CTX *ctx, const char *sids_str, DOM_SID2 **ppsi
sids = *ppsids;
- for (number = 0, ptr = sids_str;
- next_token(&ptr, s2, NULL, sizeof(s2)); number++) {
+ for (number = 0, ptr = sids_str; next_token(&ptr, s2, NULL, sizeof(s2)); ) {
DOM_SID tmpsid;
- string_to_sid(&tmpsid, s2);
- init_dom_sid2(&sids[number], &tmpsid);
+ if (string_to_sid(&tmpsid, s2)) {
+ /* count only valid sids */
+ init_dom_sid2(&sids[number], &tmpsid);
+ number++;
+ }
}
}