case NOTMUCH_STATUS_TAG_TOO_LONG:
return "Tag value is too long (exceeds NOTMUCH_TAG_MAX)";
case NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW:
- return "Unblanced number of calls to notmuch_message_freeze/thaw";
+ return "Unbalanced number of calls to notmuch_message_freeze/thaw";
default:
case NOTMUCH_STATUS_LAST_STATUS:
return "Unknown error status value";
* Returns a newly talloc'ed string belonging to 'ctx'.
*
* Returns NULL if there is any error parsing the message-id. */
-char *
+static char *
_parse_message_id (void *ctx, const char *message_id, const char **next)
{
const char *s, *end;
char *result;
- if (message_id == NULL)
+ if (message_id == NULL || *message_id == '\0')
return NULL;
s = message_id;
{
char *ref;
- if (refs == NULL)
+ if (refs == NULL || *refs == '\0')
return;
while (*refs) {
/* Carefully avoid adding any self-referential in-reply-to term. */
in_reply_to_message_id = _parse_message_id (message, in_reply_to, NULL);
- if (strcmp (in_reply_to_message_id,
+ if (in_reply_to_message_id &&
+ strcmp (in_reply_to_message_id,
notmuch_message_get_message_id (message)))
{
_notmuch_message_add_term (message, "replyto",
subject = notmuch_message_file_get_header (message_file, "subject");
to = notmuch_message_file_get_header (message_file, "to");
- if (from == NULL &&
- subject == NULL &&
- to == NULL)
+ if ((from == NULL || *from == '\0') &&
+ (subject == NULL || *subject == '\0') &&
+ (to == NULL || *to == '\0'))
{
ret = NOTMUCH_STATUS_FILE_NOT_EMAIL;
goto DONE;
* is to find a message ID (or else create one ourselves). */
header = notmuch_message_file_get_header (message_file, "message-id");
- if (header) {
+ if (header && *header != '\0') {
message_id = _parse_message_id (message_file, header, NULL);
/* So the header value isn't RFC-compliant, but it's
* better than no message-id at all. */
talloc_free (message_id);
- if (message == NULL)
+ if (message == NULL) {
+ ret = COERCE_STATUS (private_status,
+ "Unexpected status value from _notmuch_message_create_for_message_id");
goto DONE;
+ }
/* Is this a newly created message object? */
if (private_status == NOTMUCH_PRIVATE_STATUS_NO_DOCUMENT_FOUND) {