Merge branch '0.3.x' immediately after the 0.3.1 release
authorCarl Worth <cworth@cworth.org>
Wed, 28 Apr 2010 00:12:16 +0000 (17:12 -0700)
committerCarl Worth <cworth@cworth.org>
Wed, 28 Apr 2010 00:13:47 +0000 (17:13 -0700)
This brings one bug fix into master that was originally applied
directly to the 0.3.x branch.

NEWS
debian/changelog
lib/thread.cc
version

diff --git a/NEWS b/NEWS
index 3c8f0b3592a496fa49df106ba2e875f01839a085..9d913791ed4e846c06e901d7164a659c60732fb3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -18,8 +18,8 @@ Automatically tag messages as "replied" when sending a reply
 
 Notmuch 0.3.1 (2010-04-27)
 ==========================
-General bug fix
----------------
+General bug fixes
+-----------------
 Fix an infinite loop in "notmuch reply"
 
   This bug could be triggered by replying to a message where the
@@ -27,6 +27,12 @@ Fix an infinite loop in "notmuch reply"
   the user had not configured any secondary email addresses. The bug
   was a simple re-use of the same iterator variable in nested loops.
 
+Fix a potential SEGV in "notmuch search"
+
+  This bug could be triggered by an author name ending in a ','.
+  Admittedly - that's almost certainly a spam email, but we never
+  want notmuch to crash.
+
 Emacs bug fixes
 ---------------
 Fix calculations for line wrapping in the primary "notmuch" view.
index d0c13ba6861c34151ee8f02bd1ff10769dfe22c8..66589c18f64747798d479994382e5d8c70dfd7a1 100644 (file)
@@ -1,3 +1,12 @@
+notmuch (0.3.1) unstable; urgency=low
+
+  * Fix an infinite loop in "notmuch reply"
+  * Fix a potential SEGV in "notmuch search"
+  * emacs: Fix calculations for line wrapping in the "notmuch" view.
+  * emacs: Fix Fcc support to prompt to create a directory if necessary
+
+ -- Carl Worth <cworth@debian.org>  Tue, 27 Apr 2010 17:02:07 -0700
+
 notmuch (0.3) unstable; urgency=low
 
   * User-configurable tags for new messages
index dc74ee3e95d30e2921d267147f51820539043d95..13872d46c781900865e8ca118a7027ff0665643e 100644 (file)
@@ -156,11 +156,19 @@ _thread_cleanup_author (notmuch_thread_t *thread,
     char *blank;
     int fname,lname;
 
+    if (author == NULL)
+       return NULL;
     clean_author = talloc_strdup(thread, author);
     if (clean_author == NULL)
        return NULL;
+    /* check if there's a comma in the name and that there's a
+     * component of the name behind it (so the name doesn't end with
+     * the comma - in which case the string that strchr finds is just
+     * one character long ",\0").
+     * Otherwise just return the copy of the original author name that
+     * we just made*/
     comma = strchr(author,',');
-    if (comma) {
+    if (comma && strlen(comma) > 1) {
        /* let's assemble what we think is the correct name */
        lname = comma - author;
        fname = strlen(author) - lname - 2;
@@ -180,7 +188,6 @@ _thread_cleanup_author (notmuch_thread_t *thread,
            /* we didn't identify this as part of the email address
            * so let's punt and return the original author */
            strcpy (clean_author, author);
-
     }
     return clean_author;
 }
diff --git a/version b/version
index be586341736ee60d6ca2be0f3762a307e8fe79f9..9e11b32fcaa96816319e5d0dcff9fb2873f04061 100644 (file)
--- a/version
+++ b/version
@@ -1 +1 @@
-0.3
+0.3.1