[PATCH v2 4/4] new: Fix missing end_atomic in remove_filename on error
Austin Clements
amdragon at MIT.EDU
Sat Apr 21 21:27:48 PDT 2012
Previously, if we failed to find the message by filename in
remove_filename, we would return immediately from the function without
ending its atomic block. Now this code follows the usual goto DONE
idiom to perform cleanup.
---
notmuch-new.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/notmuch-new.c b/notmuch-new.c
index 2103b18..9eebea4 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -779,7 +779,8 @@ remove_filename (notmuch_database_t *notmuch,
return status;
status = notmuch_database_find_message_by_filename (notmuch, path, &message);
if (status || message == NULL)
- return status;
+ goto DONE;
+
status = notmuch_database_remove_message (notmuch, path);
if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) {
add_files_state->renamed_messages++;
@@ -790,6 +791,8 @@ remove_filename (notmuch_database_t *notmuch,
add_files_state->removed_messages++;
}
notmuch_message_destroy (message);
+
+ DONE:
notmuch_database_end_atomic (notmuch);
return status;
}
--
1.7.9.1
More information about the notmuch
mailing list