mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
notmuch_database_add_message: Do not return a message on failure.
The recent, disastrous failure of "notmuch new" would have been avoided with this change. The new_command function was basically assuming that it would only get a message object on success so wasn't destroying the message in the other cases.
This commit is contained in:
parent
854f82fb91
commit
203a717d64
2 changed files with 9 additions and 5 deletions
|
@ -836,6 +836,9 @@ notmuch_database_add_message (notmuch_database_t *notmuch,
|
||||||
const char *from, *to, *subject, *old_filename;
|
const char *from, *to, *subject, *old_filename;
|
||||||
char *message_id;
|
char *message_id;
|
||||||
|
|
||||||
|
if (message_ret)
|
||||||
|
*message_ret = NULL;
|
||||||
|
|
||||||
message_file = notmuch_message_file_open (filename);
|
message_file = notmuch_message_file_open (filename);
|
||||||
if (message_file == NULL) {
|
if (message_file == NULL) {
|
||||||
ret = NOTMUCH_STATUS_FILE_ERROR;
|
ret = NOTMUCH_STATUS_FILE_ERROR;
|
||||||
|
@ -932,7 +935,7 @@ notmuch_database_add_message (notmuch_database_t *notmuch,
|
||||||
|
|
||||||
DONE:
|
DONE:
|
||||||
if (message) {
|
if (message) {
|
||||||
if (message_ret)
|
if (ret == NOTMUCH_STATUS_SUCCESS && message_ret)
|
||||||
*message_ret = message;
|
*message_ret = message;
|
||||||
else
|
else
|
||||||
notmuch_message_destroy (message);
|
notmuch_message_destroy (message);
|
||||||
|
|
|
@ -252,10 +252,11 @@ notmuch_database_get_timestamp (notmuch_database_t *database,
|
||||||
* reference the filename, and will not copy the entire contents of
|
* reference the filename, and will not copy the entire contents of
|
||||||
* the file.
|
* the file.
|
||||||
*
|
*
|
||||||
* If 'message' is not NULL, then '*message' will be initialized to a
|
* If 'message' is not NULL, then, on successful return '*message'
|
||||||
* message object that can be used for things such as adding tags to
|
* will be initialized to a message object that can be used for things
|
||||||
* the just-added message. The user should call
|
* such as adding tags to the just-added message. The user should call
|
||||||
* notmuch_message_destroy when done with the message.
|
* notmuch_message_destroy when done with the message. On any failure
|
||||||
|
* '*message' will be set to NULL.
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return value:
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue