diff options
author | Michael Adam <obnox@samba.org> | 2009-05-25 11:54:43 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2009-05-25 14:57:06 +0200 |
commit | 3111d78001f458cfcaf81123a1d1c23d5927a6c2 (patch) | |
tree | 257b238a0730d07be527cc26dacfdddf135d1c1c /source3/winbindd | |
parent | 35c3f4162d15f9846a645444e623178b78c52994 (diff) | |
download | samba-3111d78001f458cfcaf81123a1d1c23d5927a6c2.tar.gz samba-3111d78001f458cfcaf81123a1d1c23d5927a6c2.tar.bz2 samba-3111d78001f458cfcaf81123a1d1c23d5927a6c2.zip |
s3:winbind:idmap_ldap: warn about duplicate SID->XID mappings (bug #6387)
With the current infrastructure, we should not return error on
duplicate mappings but just warn instead (because an error would
trigger the attempt to create yet another mapping).
Michael
Diffstat (limited to 'source3/winbindd')
-rw-r--r-- | source3/winbindd/idmap_ldap.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source3/winbindd/idmap_ldap.c b/source3/winbindd/idmap_ldap.c index 63108040fd..88ece8c7de 100644 --- a/source3/winbindd/idmap_ldap.c +++ b/source3/winbindd/idmap_ldap.c @@ -1257,8 +1257,6 @@ again: continue; } - TALLOC_FREE(sidstr); - /* now try to see if it is a uid, if not try with a gid * (gid is more common, but in case both uidNumber and * gidNumber are returned the SID is mapped to the uid @@ -1276,6 +1274,7 @@ again: if ( ! tmp) { /* no ids ?? */ DEBUG(5, ("no uidNumber, " "nor gidNumber attributes found\n")); + TALLOC_FREE(sidstr); continue; } @@ -1286,11 +1285,21 @@ again: DEBUG(5, ("Requested id (%u) out of range (%u - %u). " "Filtered!\n", id, ctx->filter_low_id, ctx->filter_high_id)); + TALLOC_FREE(sidstr); TALLOC_FREE(tmp); continue; } TALLOC_FREE(tmp); + if (map->status == ID_MAPPED) { + DEBUG(1, ("WARNING: duplicate %s mapping in LDAP. " + "overwriting mapping %s -> %u with %s -> %u\n", + (type == ID_TYPE_UID) ? "UID" : "GID", + sidstr, map->xid.id, sidstr, id)); + } + + TALLOC_FREE(sidstr); + /* mapped */ map->xid.type = type; map->xid.id = id; |