From 88bf876bae79cbaee50c62664bc1baac5cb79742 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 27 Oct 2009 23:59:06 -0700 Subject: [PATCH] notmuch tag: Fix crash when removing a tag that didn't exist Xapian is trying to be useful by reporting that the specified term didn't exist, but this is one case where we just don't care. :-) --- message.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/message.cc b/message.cc index 6e15b511..66747b5c 100644 --- a/message.cc +++ b/message.cc @@ -465,7 +465,14 @@ _notmuch_message_remove_term (notmuch_message_t *message, if (strlen (term) > NOTMUCH_TERM_MAX) return NOTMUCH_PRIVATE_STATUS_TERM_TOO_LONG; - message->doc.remove_term (term); + try { + message->doc.remove_term (term); + } catch (const Xapian::InvalidArgumentError) { + /* We'll let the philosopher's try to wrestle with the + * question of whether failing to remove that which was not + * there in the first place is failure. For us, we'll silently + * consider it all good. */ + } talloc_free (term);