diff --git a/NEWS b/NEWS index 3c8f0b35..9d913791 100644 --- 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. diff --git a/debian/changelog b/debian/changelog index d0c13ba6..66589c18 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Tue, 27 Apr 2010 17:02:07 -0700 + notmuch (0.3) unstable; urgency=low * User-configurable tags for new messages diff --git a/lib/thread.cc b/lib/thread.cc index dc74ee3e..13872d46 100644 --- a/lib/thread.cc +++ b/lib/thread.cc @@ -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 be586341..9e11b32f 100644 --- a/version +++ b/version @@ -1 +1 @@ -0.3 +0.3.1