Skip to content

Commit 8e97dc2

Browse files
committed
mailbox.c: check for and log record_to_vcard_x() failure
1 parent cba1a0b commit 8e97dc2

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

Diff for: imap/mailbox.c

+12-3
Original file line numberDiff line numberDiff line change
@@ -3693,15 +3693,24 @@ static int mailbox_update_carddav(struct mailbox *mailbox,
36933693
#ifdef HAVE_LIBICALVCARD
36943694
vcardcomponent *vcard = record_to_vcard_x(mailbox, new);
36953695

3696+
if (!vcard) {
3697+
xsyslog(LOG_ERR, "record_to_vcard_x() failed",
3698+
"record=<%u> mailbox=<%s>",
3699+
cdata->dav.imap_uid, mailbox_name(mailbox));
3700+
r = IMAP_MAILBOX_BADFORMAT; // XXX better error?
3701+
goto done;
3702+
}
3703+
36963704
r = carddav_writecard_x(carddavdb, cdata, vcard, ispinned);
36973705

36983706
vcardcomponent_free(vcard);
36993707
#else
37003708
struct vparse_card *vcard = record_to_vcard(mailbox, new);
37013709

37023710
if (!vcard || !vcard->objects) {
3703-
syslog(LOG_ERR, "record_to_vcard failed for record %u:%s",
3704-
cdata->dav.imap_uid, mailbox_name(mailbox));
3711+
xsyslog(LOG_ERR, "record_to_vcard() failed",
3712+
"record=<%u> mailbox=<%s>",
3713+
cdata->dav.imap_uid, mailbox_name(mailbox));
37053714
r = IMAP_MAILBOX_BADFORMAT; // XXX better error?
37063715
vparse_free_card(vcard);
37073716
goto done;
@@ -3710,7 +3719,7 @@ static int mailbox_update_carddav(struct mailbox *mailbox,
37103719
r = carddav_writecard(carddavdb, cdata, vcard->objects, ispinned);
37113720

37123721
vparse_free_card(vcard);
3713-
#endif
3722+
#endif /* HAVE_LIBICALVCARD */
37143723
}
37153724

37163725
done:

0 commit comments

Comments
 (0)