1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

dbcheck: clarify check_object userparams

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Noel Power <npower@samba.org>
This commit is contained in:
Douglas Bagnall 2020-12-09 11:50:37 +13:00 committed by Noel Power
parent 8337144389
commit 9bf9b99808

View File

@ -2447,12 +2447,12 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base)))
if attrname.lower() == 'userparameters':
userparams = obj[attrname][0]
if len(userparams) == 1 and userparams[0] == b'\x20'[0]:
if userparams == b' ':
error_count += 1
self.err_short_userParameters(obj, attrname, obj[attrname])
continue
elif userparams[:16] == b'\x20\x00\x20\x00\x20\x00\x20\x00\x20\x00\x20\x00\x20\x00\x20\x00':
elif userparams[:16] == b'\x20\x00' * 8:
# This is the correct, normal prefix
continue
@ -2463,8 +2463,13 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base)))
continue
#43:00:00:00:74:00:00:00:78
elif userparams[1] != b'\x00'[0] and userparams[3] != b'\x00'[0] and userparams[5] != b'\x00'[0] and userparams[7] != b'\x00'[0] and userparams[9] != b'\x00'[0]:
# This is a prefix that is not in UTF-16 format for the space or munged dialback prefix
elif (userparams[1] != 0 and
userparams[3] != 0 and
userparams[5] != 0 and
userparams[7] != 0 and
userparams[9] != 0):
# This is a prefix that is not in UTF-16 format
# for the space or munged dialback prefix
error_count += 1
self.err_utf8_userParameters(obj, attrname, obj[attrname])
continue
@ -2475,8 +2480,14 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base)))
self.err_odd_userParameters(obj, attrname)
continue
elif userparams[1] == b'\x00'[0] and userparams[2] == b'\x00'[0] and userparams[3] == b'\x00'[0] and userparams[4] != b'\x00'[0] and userparams[5] == b'\x00'[0]:
# This is a prefix that would happen if a SAMR-written value was replicated from a Samba 4.1 server to a working server
elif (userparams[1] == 0 and
userparams[2] == 0 and
userparams[3] == 0 and
userparams[4] != 0 and
userparams[5] == 0):
# This is a prefix that would happen if a
# SAMR-written value was replicated from a Samba
# 4.1 server to a working server
error_count += 1
self.err_doubled_userParameters(obj, attrname, obj[attrname])
continue