python/samba: PY3 ord needs 'str' type not int
authorNoel Power <noel.power@suse.com>
Fri, 2 Nov 2018 16:16:39 +0000 (16:16 +0000)
committerNoel Power <npower@samba.org>
Mon, 10 Dec 2018 09:38:21 +0000 (10:38 +0100)
string_to_byte_array returns not a bytearray (as the name suggests)
but a list of byte values (int). Some code expects the list so even
using a 'real' bytearray wont work.

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/__init__.py
python/samba/tests/auth_log_samlogon.py

index 291ef54..93240dd 100644 (file)
@@ -376,7 +376,7 @@ def string_to_byte_array(string):
     blob = [0] * len(string)
 
     for i in range(len(string)):
-        blob[i] = ord(string[i])
+        blob[i] = string[i] if isinstance(string[i], int) else ord(string[i])
 
     return blob
 
index d3b14f3..892ad51 100644 (file)
@@ -124,10 +124,10 @@ class AuthLogTestsSamLogon(samba.tests.auth_log_base.AuthLogTestBase):
         logon_level = netlogon.NetlogonNetworkTransitiveInformation
         logon = samba.dcerpc.netlogon.netr_NetworkInfo()
 
-        logon.challenge = [ord(x) for x in challenge]
+        logon.challenge = [x if isinstance(x,int) else ord(x) for x in challenge]
         logon.nt = netlogon.netr_ChallengeResponse()
         logon.nt.length = len(response["nt_response"])
-        logon.nt.data = [ord(x) for x in response["nt_response"]]
+        logon.nt.data = [x if isinstance(x,int) else ord(x) for x in response["nt_response"]]
         logon.identity_info = samba.dcerpc.netlogon.netr_IdentityInfo()
         (username, domain) = creds.get_ntlm_username_domain()