1 file changed, 6 insertions(+), 4 deletions(-) flags.c | 10 ++++++----
# HG changeset patch # User Erik Hovland <[email protected]> # Date 1236891080 25200 # Branch HEAD # Node ID 43c02f38d2127c88da18495a6c9c7c1bf5e007a7 # Parent d56f727afd7dcb5f95d4d82fa262699c707d8844 ctx might be null. Check it earlier. diff --git a/flags.c b/flags.c --- a/flags.c +++ b/flags.c @@ -28,11 +28,13 @@ void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx) { int changed = h->changed; - int deleted = ctx->deleted; - int tagged = ctx->tagged; - int flagged = ctx->flagged; + int deleted = ctx ? ctx->deleted : 0; + int tagged = ctx ? ctx->tagged : 0; + int flagged = ctx ? ctx->flagged : 0; int update = 0; + if (!ctx) + return; /* whoops, no context - bye */ if (ctx->readonly && flag != M_TAG) return; /* don't modify anything if we are read-only */ @@ -53,7 +55,7 @@ #ifdef USE_IMAP /* deleted messages aren't treated as changed elsewhere so that the * purge-on-sync option works correctly. This isn't applicable here */ - if (ctx && ctx->magic == M_IMAP) + if (ctx->magic == M_IMAP) { h->changed = 1; if (upd_ctx) ctx->changed = 1;
