1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-02 09:47:23 +03:00

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
This commit is contained in:
Michael Adam 2013-10-18 16:26:41 +02:00 committed by Andreas Schneider
parent c6909887c2
commit d286b17d46

View File

@ -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);