From 1023cfebff99af165212dee94290a05754297270 Mon Sep 17 00:00:00 2001 From: Martin Basti Date: Jan 31 2017 17:33:27 +0000 Subject: Principal: validate type of input parameter Bytes are unsupported and we should raise a TypeError from Principal __init__ method otherwise we get hard to debug result Reviewed-By: Christian Heimes --- diff --git a/ipapython/kerberos.py b/ipapython/kerberos.py index 3d3530c..9b02790 100644 --- a/ipapython/kerberos.py +++ b/ipapython/kerberos.py @@ -66,7 +66,12 @@ class Principal(object): Container for the principal name and realm according to RFC 1510 """ def __init__(self, components, realm=None): - if isinstance(components, six.string_types): + if isinstance(components, six.binary_type): + raise TypeError( + "Cannot create a principal object from bytes: {!r}".format( + components) + ) + elif isinstance(components, six.string_types): # parse principal components from realm self.components, self.realm = self._parse_from_text( components, realm)