s3: zero an uninitialized array
authorMarc VanHeyningen <marc.vanheyningen@isilon.com>
Tue, 5 May 2009 22:07:40 +0000 (22:07 +0000)
committerKarolin Seeger <kseeger@samba.org>
Tue, 2 Jun 2009 10:41:57 +0000 (12:41 +0200)
Invalid pointers were being dereferenced in lookup_sids causing
occasional seg faults.

Signed-off-by: Tim Prouty <tprouty@samba.org>
(cherry picked from commit 34ca12c9396f7c8475cd1525bdbc40021b0e533f)
(cherry picked from commit 9f5f8278b905b38d288618916c23f85373919b83)

source/passdb/lookup_sid.c

index d767fa4f50aa586c56ada125531ae889ac2574cf..1971caeab8605ba211f6666209f490be4a380788 100644 (file)
@@ -468,12 +468,15 @@ static bool lookup_rids(TALLOC_CTX *mem_ctx, const DOM_SID *domain_sid,
                   sid_string_dbg(domain_sid)));
 
        if (num_rids) {
-               *names = TALLOC_ARRAY(mem_ctx, const char *, num_rids);
+               *names = TALLOC_ZERO_ARRAY(mem_ctx, const char *, num_rids);
                *types = TALLOC_ARRAY(mem_ctx, enum lsa_SidType, num_rids);
 
                if ((*names == NULL) || (*types == NULL)) {
                        return false;
                }
+
+               for (i = 0; i < num_rids; i++)
+                       (*types)[i] = SID_NAME_UNKNOWN;
        } else {
                *names = NULL;
                *types = NULL;