From f10ec87cc3ed9cbdb4e535ee6574c2a568c38b1d Mon Sep 17 00:00:00 2001 From: pazz Date: Tue, 16 Aug 2011 22:37:47 +0100 Subject: [PATCH] python: Fix unsafe utf-8 decodings This prevents unsafe calls to decode for return value None in get_authors/get_subject which would current throw an Exception. Original patch modified by Sebastian Spaeth. Signed-off-by: Sebastian Spaeth --- bindings/python/notmuch/tag.py | 2 +- bindings/python/notmuch/thread.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/bindings/python/notmuch/tag.py b/bindings/python/notmuch/tag.py index d6abf286..0f25b0f7 100644 --- a/bindings/python/notmuch/tag.py +++ b/bindings/python/notmuch/tag.py @@ -86,7 +86,7 @@ class Tags(object): if not nmlib.notmuch_tags_valid(self._tags): self._tags = None raise StopIteration - tag = Tags._get(self._tags).decode('utf-8') + tag = Tags._get(self._tags).decode('UTF-8') nmlib.notmuch_tags_move_to_next(self._tags) return tag diff --git a/bindings/python/notmuch/thread.py b/bindings/python/notmuch/thread.py index 120f9258..83b4202d 100644 --- a/bindings/python/notmuch/thread.py +++ b/bindings/python/notmuch/thread.py @@ -292,7 +292,10 @@ class Thread(object): """ if self._thread is None: raise NotmuchError(STATUS.NOT_INITIALIZED) - return Thread._get_authors(self._thread).decode('UTF-8') + authors = Thread._get_authors(self._thread) + if authors is None: + return None + return authors.decode('UTF-8') def get_subject(self): """Returns the Subject of 'thread' @@ -302,7 +305,10 @@ class Thread(object): """ if self._thread is None: raise NotmuchError(STATUS.NOT_INITIALIZED) - return Thread._get_subject(self._thread).decode('UTF-8') + subject = Thread._get_subject(self._thread) + if subject is None: + return None + return subject.decode('UTF-8') def get_newest_date(self): """Returns time_t of the newest message date