]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
dbcheck: clarify check_object userparams
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Tue, 8 Dec 2020 22:50:37 +0000 (11:50 +1300)
committerNoel Power <npower@samba.org>
Tue, 15 Dec 2020 14:32:43 +0000 (14:32 +0000)
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Noel Power <npower@samba.org>
python/samba/dbchecker.py

index 71672482c59a919f6c5b0ebae0e80823504769de..364dc9427d7011fbdc5911bf1db8d83b31d4e632 100644 (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