From 1755d89bc59b1b7188e471b46b389da8acbf1406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B8=D0=BB=D1=8F=D0=BD=20=D0=9F=D0=B0=D0=BB=D0=B0?= =?UTF-8?q?=D1=83=D0=B7=D0=BE=D0=B2?= Date: Fri, 25 Aug 2023 20:37:08 +0200 Subject: [PATCH] mailbox_get_xconvemodseq() is never called with NULL for *modseqp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The way the function was written implied that the parameter modseqp could be NULL. If it were NULL, then “*modseqp = status.threadmodseq;” would cause NULL-dereference. In practice the function is never called with NULL as last parameter. --- imap/mailbox.c | 3 --- imap/mailbox.h | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/imap/mailbox.c b/imap/mailbox.c index 41875f3729..9d10b572e3 100644 --- a/imap/mailbox.c +++ b/imap/mailbox.c @@ -4387,9 +4387,6 @@ EXPORTED int mailbox_get_xconvmodseq(struct mailbox *mailbox, modseq_t *modseqp) conv_status_t status = CONV_STATUS_INIT; int r; - if (modseqp) - *modseqp = 0; - struct conversations_state *cstate = mailbox_get_cstate(mailbox); if (!cstate) return 0; diff --git a/imap/mailbox.h b/imap/mailbox.h index 76191668ae..f1cad71d53 100644 --- a/imap/mailbox.h +++ b/imap/mailbox.h @@ -748,7 +748,7 @@ extern int mailbox_cid_rename(struct mailbox *mailbox, conversation_id_t from_cid, conversation_id_t to_cid); extern int mailbox_add_conversations(struct mailbox *mailbox, int silent); -extern int mailbox_get_xconvmodseq(struct mailbox *mailbox, modseq_t *); +__attribute__((nonnull)) int mailbox_get_xconvmodseq(struct mailbox *mailbox, modseq_t *); extern int mailbox_update_xconvmodseq(struct mailbox *mailbox, modseq_t, int force); #define mailbox_has_conversations(m) mailbox_has_conversations_full(m, 0) extern int mailbox_has_conversations_full(struct mailbox *mailbox, int allow_deleted);