From 3bb7808984c163a7bba66fb983411d1281589722 Mon Sep 17 00:00:00 2001 From: Tim Beale Date: Wed, 16 Jan 2019 15:17:38 +1300 Subject: [PATCH] join: Fix TypeError when handling exception When we can't resolve a domain name, we were inadvertently throwing a TypeError whilst trying to output a helpful message. E.g. ERROR(): uncaught exception - 'NTSTATUSError' object does not support indexing Instead of indexing the object, we want to index the Exception.args so that we just display the string portion of the exception error. The same problem is also present for the domain trust commands. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13747 Signed-off-by: Tim Beale Reviewed-by: Rowland Penny Reviewed-by: Jeremy Allison --- python/samba/join.py | 2 +- python/samba/netcmd/domain.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/python/samba/join.py b/python/samba/join.py index cf5d1b92b66..28b7f0b8300 100644 --- a/python/samba/join.py +++ b/python/samba/join.py @@ -346,7 +346,7 @@ class DCJoinContext(object): ctx.cldap_ret = ctx.net.finddc(domain=domain, flags=nbt.NBT_SERVER_LDAP | nbt.NBT_SERVER_DS | nbt.NBT_SERVER_WRITABLE) except NTSTATUSError as error: raise Exception("Failed to find a writeable DC for domain '%s': %s" % - (domain, error[1])) + (domain, error.args[1])) except Exception: raise Exception("Failed to find a writeable DC for domain '%s'" % domain) if ctx.cldap_ret.client_site is not None and ctx.cldap_ret.client_site != "": diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py index 9c5ae21fdd7..b7aedc16a91 100644 --- a/python/samba/netcmd/domain.py +++ b/python/samba/netcmd/domain.py @@ -1802,7 +1802,7 @@ class DomainTrustCommand(Command): remote_info = remote_net.finddc(flags=remote_flags, domain=domain, address=remote_server) except NTSTATUSError as error: raise CommandError("Failed to find a writeable DC for domain '%s': %s" % - (domain, error[1])) + (domain, error.args[1])) except Exception: raise CommandError("Failed to find a writeable DC for domain '%s'" % domain) flag_map = {