components/samba/samba/patches/7167490-8952.patch
author Jiri Sasek <Jiri.Sasek@Sun.COM>
Mon, 18 Jun 2012 11:06:49 -0700
changeset 874 cef42778dd8b
permissions -rw-r--r--
7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1 7175829 passwords greater than 8 characters supplied to smbpasswd 3.6 don't work 7175184 Samba 3.6.4 net ads join fails failed to lookup DC info for domain 'DOMAIN' over rpc: Logon failure
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
874
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     1
From 7a64da3189a1e901aff66aa5e2e46e4a9c03750f Mon Sep 17 00:00:00 2001
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     2
From: Ira Cooper <[email protected]>
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     3
Date: Wed, 23 May 2012 21:39:03 -0400
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     4
Subject: [PATCH] s3-passdb: Fix negative SID->uid/gid cache handling. (bug #8952)
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     5
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     6
-1 uid/gid signals a non existent uid/gid.
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     7
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     8
Signed-off-by: Stefan Metzmacher <[email protected]>
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
     9
---
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    10
 source3/passdb/lookup_sid.c |   17 +++++++++++++++++
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    11
 1 files changed, 17 insertions(+), 0 deletions(-)
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    12
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    13
diff --git a/source3/passdb/lookup_sid.c b/source3/passdb/lookup_sid.c
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    14
index 5cf391f..2afa86e 100644
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    15
--- a/source3/passdb/lookup_sid.c
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    16
+++ b/source3/passdb/lookup_sid.c
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    17
@@ -1490,7 +1490,24 @@ bool sids_to_unix_ids(const struct dom_sid *sids, uint32_t num_sids,
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    18
 			continue;
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    19
 		}
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    20
 	}
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    21
+
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    22
 done:
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    23
+	for (i=0; i<num_sids; i++) {
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    24
+		switch(ids[i].type) {
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    25
+		case WBC_ID_TYPE_GID:
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    26
+			if (ids[i].id.gid == (gid_t)-1) {
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    27
+				ids[i].type = WBC_ID_TYPE_NOT_SPECIFIED;
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    28
+			}
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    29
+			break;
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    30
+		case WBC_ID_TYPE_UID:
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    31
+			if (ids[i].id.uid == (uid_t)-1) {
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    32
+				ids[i].type = WBC_ID_TYPE_NOT_SPECIFIED;
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    33
+			}
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    34
+			break;
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    35
+		case WBC_ID_TYPE_NOT_SPECIFIED:
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    36
+			break;
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    37
+		}
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    38
+	}
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    39
 	ret = true;
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    40
 fail:
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    41
 	TALLOC_FREE(wbc_ids);
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    42
-- 
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    43
1.7.4.1
cef42778dd8b 7167490 Samba 3.6.4 coredumps when trying to use setgroups for the internal default gid -1
Jiri Sasek <Jiri.Sasek@Sun.COM>
parents:
diff changeset
    44