X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=mime-node.c;h=a5645e5cb99d7a0547d2f32c5c69b92e67c94891;hb=c3eba1c3f85394b977f513059a0585d89a9a4e2d;hp=d6b4506cbad5b7b19271bd237d87860bb4232ce8;hpb=d43f6c00b351424e903c2f2b71c34bc5902b467e;p=notmuch diff --git a/mime-node.c b/mime-node.c index d6b4506c..a5645e5c 100644 --- a/mime-node.c +++ b/mime-node.c @@ -33,11 +33,7 @@ typedef struct mime_node_context { GMimeMessage *mime_message; /* Context provided by the caller. */ -#ifdef GMIME_ATLEAST_26 - GMimeCryptoContext *cryptoctx; -#else - GMimeCipherContext *cryptoctx; -#endif + notmuch_crypto_context_t *cryptoctx; notmuch_bool_t decrypt; } mime_node_context_t; @@ -61,11 +57,7 @@ _mime_node_context_free (mime_node_context_t *res) notmuch_status_t mime_node_open (const void *ctx, notmuch_message_t *message, -#ifdef GMIME_ATLEAST_26 - GMimeCryptoContext *cryptoctx, -#else - GMimeCipherContext *cryptoctx, -#endif + notmuch_crypto_context_t *cryptoctx, notmuch_bool_t decrypt, mime_node_t **root_out) { const char *filename = notmuch_message_get_filename (message); @@ -97,11 +89,26 @@ mime_node_open (const void *ctx, notmuch_message_t *message, } mctx->stream = g_mime_stream_file_new (mctx->file); + if (!mctx->stream) { + fprintf (stderr, "Out of memory.\n"); + status = NOTMUCH_STATUS_OUT_OF_MEMORY; + goto DONE; + } g_mime_stream_file_set_owner (GMIME_STREAM_FILE (mctx->stream), FALSE); mctx->parser = g_mime_parser_new_with_stream (mctx->stream); + if (!mctx->parser) { + fprintf (stderr, "Out of memory.\n"); + status = NOTMUCH_STATUS_OUT_OF_MEMORY; + goto DONE; + } mctx->mime_message = g_mime_parser_construct_message (mctx->parser); + if (!mctx->mime_message) { + fprintf (stderr, "Failed to parse %s\n", filename); + status = NOTMUCH_STATUS_FILE_ERROR; + goto DONE; + } mctx->cryptoctx = cryptoctx; mctx->decrypt = decrypt;