[PATCH 1/2] Fix SEGV in _thread_cleanup_author if author ends with ', '

2010-04-27 Thread Carl Worth
On Tue, 27 Apr 2010 16:29:22 -0700, Dirk Hohndel  
wrote:
> Admittedly, an author name ending in ',' guarantees this is spam, and
> indeed this was triggered by a spam email, but that doesn't mean we
> shouldn't handle this case correctly.
> We now check that there is actually a component of the name (presumably
> the first name) after the comma in the author name.

Thanks. This is pushed out to the 0.3.x branch, and I'll merge it into
master shortly.

-Carl
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 



[PATCH 1/2] Fix SEGV in _thread_cleanup_author if author ends with ', '

2010-04-27 Thread Dirk Hohndel
Admittedly, an author name ending in ',' guarantees this is spam, and
indeed this was triggered by a spam email, but that doesn't mean we
shouldn't handle this case correctly.
We now check that there is actually a component of the name (presumably
the first name) after the comma in the author name.

Signed-off-by: Dirk Hohndel 
---
 lib/thread.cc |   11 +--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/thread.cc b/lib/thread.cc
index dc74ee3..13872d4 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;
 }
-- 
1.6.6.1



[PATCH 1/2] Fix SEGV in _thread_cleanup_author if author ends with ', '

2010-04-27 Thread Dirk Hohndel
Admittedly, an author name ending in ',' guarantees this is spam, and
indeed this was triggered by a spam email, but that doesn't mean we
shouldn't handle this case correctly.
We now check that there is actually a component of the name (presumably
the first name) after the comma in the author name.

Signed-off-by: Dirk Hohndel hohn...@infradead.org
---
 lib/thread.cc |   11 +--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/thread.cc b/lib/thread.cc
index dc74ee3..13872d4 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;
 }
-- 
1.6.6.1

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH 1/2] Fix SEGV in _thread_cleanup_author if author ends with ', '

2010-04-27 Thread Carl Worth
On Tue, 27 Apr 2010 16:29:22 -0700, Dirk Hohndel hohn...@infradead.org wrote:
 Admittedly, an author name ending in ',' guarantees this is spam, and
 indeed this was triggered by a spam email, but that doesn't mean we
 shouldn't handle this case correctly.
 We now check that there is actually a component of the name (presumably
 the first name) after the comma in the author name.

Thanks. This is pushed out to the 0.3.x branch, and I'll merge it into
master shortly.

-Carl


pgptvK7La8HrN.pgp
Description: PGP signature
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch