s3-net: Check return value of string_to_sid().
authorAndreas Schneider <asn@samba.org>
Mon, 10 Dec 2012 16:39:03 +0000 (17:39 +0100)
committerGünther Deschner <gd@samba.org>
Wed, 12 Dec 2012 08:42:32 +0000 (09:42 +0100)
Found by Coverity.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
source3/utils/net_rpc.c

index 57d619e28b2a3e81b882f8a48efc57453147fc44..2ccc92876bc2a43c1102d991d6cf71ad2b401ac0 100644 (file)
@@ -4682,6 +4682,7 @@ static bool get_user_sids(const char *domain, const char *user, struct security_
        for (i = 0; i < num_groups; i++) {
                gid_t gid = groups[i];
                struct dom_sid sid;
+               bool ok;
 
                wbc_status = wbcGidToSid(gid, &wsid);
                if (!WBC_ERROR_IS_OK(wbc_status)) {
@@ -4695,7 +4696,12 @@ static bool get_user_sids(const char *domain, const char *user, struct security_
 
                DEBUG(3, (" %s\n", sid_str));
 
-               string_to_sid(&sid, sid_str);
+               ok = string_to_sid(&sid, sid_str);
+               if (!ok) {
+                       DEBUG(1, ("Failed to convert string to SID\n"));
+                       wbcFreeMemory(groups);
+                       return false;
+               }
                add_sid_to_token(token, &sid);
        }
        wbcFreeMemory(groups);