notmuch_message_get_header: Fix bogus return of NULL header.
authorCarl Worth <cworth@cworth.org>
Tue, 20 Oct 2009 16:52:01 +0000 (09:52 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 20 Oct 2009 16:52:01 +0000 (09:52 -0700)
A simple bug meant that the correct value was being inserted into
the hash table, but a NULL value would be returned in some cases.
(If the value was already in the hash table at the beginning of
the call the the correct value would be returned, but if the
function had to parse to reach it then it would return NULL.)

This was tripping up the recently-added code to ignore messages
with NULL From:, Subject:, and To: headers, (which is fortunate
since otherwise the broken parsing might have stayed hidden for
longer).

message.c

index 1a5994ff5a03f721b8ed0474a092328e73880db2..bd551ccd1a0a14eb899a0dc91ee019fbb18d26ae 100644 (file)
--- a/message.c
+++ b/message.c
@@ -273,8 +273,9 @@ notmuch_message_get_header (notmuch_message_t *message,
 
        match = (strcasecmp (header, header_desired) == 0);
 
 
        match = (strcasecmp (header, header_desired) == 0);
 
-       g_hash_table_insert (message->headers, header,
-                            xstrdup (message->value.str));
+       value = xstrdup (message->value.str);
+
+       g_hash_table_insert (message->headers, header, value);
 
        if (match)
            return value;
 
        if (match)
            return value;