python: Fix unsafe utf-8 decodings
authorpazz <patricktotzke@gmail.com>
Tue, 16 Aug 2011 21:37:47 +0000 (22:37 +0100)
committerSebastian Spaeth <Sebastian@SSpaeth.de>
Wed, 17 Aug 2011 12:44:45 +0000 (14:44 +0200)
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 <Sebastian@SSpaeth.de>
bindings/python/notmuch/tag.py
bindings/python/notmuch/thread.py

index d6abf2865986600d20479b749d32ee127cd692bd..0f25b0f74d056904a82c09b4f783e0551e88f897 100644 (file)
@@ -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
 
index 120f9258667494b1f36a30e03ff32313bb14375e..83b4202deb38d4e54371d31be8988e1f582d4625 100644 (file)
@@ -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