summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2013-10-18 16:26:41 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-10-21 19:48:40 +0200
commitd286b17d46984e85418ed4778890948df979a9f6 (patch)
treecb90956cc6eb19a8697c6e9f493bbb85b75d20a3
parentc6909887c26d4e827633acd50b11cf08c6aee0f7 (diff)
downloadsamba-d286b17d46984e85418ed4778890948df979a9f6.tar.gz
samba-d286b17d46984e85418ed4778890948df979a9f6.tar.bz2
samba-d286b17d46984e85418ed4778890948df979a9f6.zip
idmap_autorid: fix traversal of ranges to correctly exclude mapping records.
When listing all ranges with "net idmap get ranges", the database records of the form "S-1-5-10" --> "GID 100016" were treated here as rangee mapings, resulting in an faulty printout like this: "RANGE 541346119: S-1-5-10". This patch fixes this by adding a filter that checks the size of the value datablob. Signed-off-by: Michael Adam <obnox@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org> Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Mon Oct 21 19:48:40 CEST 2013 on sn-devel-104
-rw-r--r--source3/winbindd/idmap_autorid_tdb.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source3/winbindd/idmap_autorid_tdb.c b/source3/winbindd/idmap_autorid_tdb.c
index bbfa5b04b6..7d3275e78d 100644
--- a/source3/winbindd/idmap_autorid_tdb.c
+++ b/source3/winbindd/idmap_autorid_tdb.c
@@ -962,6 +962,14 @@ static int idmap_autorid_visit_domain_range(struct db_record *rec,
}
value = dbwrap_record_get_value(rec);
+
+ if (value.dsize != sizeof(uint32_t)) {
+ /* it might be a mapping of a well known sid */
+ DEBUG(10, ("value size %u != sizeof(uint32_t) for sid '%s', "
+ "skipping.\n", (unsigned)value.dsize, vi->domsid));
+ goto done;
+ }
+
rangenum = IVAL(value.dptr, 0);
db = dbwrap_record_get_db(rec);