From 78aa5c3dfa6432833877390f4bf48e3b5c442d2b Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Mon, 23 Jul 2012 03:10:04 -0700 Subject: Add more validation for 0 length JID components. --- sleekxmpp/jid.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/sleekxmpp/jid.py b/sleekxmpp/jid.py index 7597885a..f0b7423b 100644 --- a/sleekxmpp/jid.py +++ b/sleekxmpp/jid.py @@ -140,7 +140,13 @@ def _validate_node(node): """ try: if node is not None: + if not node: + raise InvalidJID('Localpart must not be 0 bytes') + node = nodeprep(node) + + if not node: + raise InvalidJID('Localpart must not be 0 bytes') return node except stringprep_profiles.StringPrepError: raise InvalidJID('Invalid local part') @@ -202,7 +208,7 @@ def _validate_domain(domain): domain = '.'.join(domain_parts) if not domain: - raise InvalidJID('Missing domain') + raise InvalidJID('Domain must not be 0 bytes') return domain @@ -216,7 +222,13 @@ def _validate_resource(resource): """ try: if resource is not None: + if not resource: + raise InvalidJID('Resource must not be 0 bytes') + resource = resourceprep(resource) + + if not resource: + raise InvalidJID('Resource must not be 0 bytes') return resource except stringprep_profiles.StringPrepError: raise InvalidJID('Invalid resource') -- cgit v1.2.3