diff options
author | Michael Adam <obnox@samba.org> | 2013-10-18 16:26:41 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2013-10-21 19:48:40 +0200 |
commit | d286b17d46984e85418ed4778890948df979a9f6 (patch) | |
tree | cb90956cc6eb19a8697c6e9f493bbb85b75d20a3 /source3 | |
parent | c6909887c26d4e827633acd50b11cf08c6aee0f7 (diff) | |
download | samba-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
Diffstat (limited to 'source3')
-rw-r--r-- | source3/winbindd/idmap_autorid_tdb.c | 8 |
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); |