[PATCH 2/2] [python] fix unsafe utf-8 decodings

Subject: [PATCH 2/2] [python] fix unsafe utf-8 decodings

Date: Tue, 16 Aug 2011 22:37:47 +0100

To: notmuch@notmuchmail.org

Cc:

From: Patrick Totzke


From: pazz <patricktotzke@gmail.com>

This prevents unsafe calls to decode for return
value None in get_authors/get_subject
---
 bindings/python/notmuch/tag.py    |    4 +++-
 bindings/python/notmuch/thread.py |   10 ++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/bindings/python/notmuch/tag.py b/bindings/python/notmuch/tag.py
index d6abf28..9eb9fe2 100644
--- a/bindings/python/notmuch/tag.py
+++ b/bindings/python/notmuch/tag.py
@@ -86,7 +86,9 @@ 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)
+        if tag:
+            tag = tag.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 120f925..2a55bd9 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:
+            return authors.decode('UTF-8')
+        return None
 
     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:
+            return subject.decode('UTF-8')
+        return None
 
     def get_newest_date(self):
         """Returns time_t of the newest message date
-- 
1.7.4.1


Thread: