From: Wilfried Goesgens Date: Sat, 3 Dec 2011 10:07:16 +0000 (+0100) Subject: Memleaksearch X-Git-Tag: v8.11~373 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=0d7ca663831fc7b769a80211aeb12bbe958e349e Memleaksearch - malloc a length in every case by adding a bonus byte - check for whether we have a pointer or not. --- diff --git a/citadel/modules/imap/serv_imap.c b/citadel/modules/imap/serv_imap.c index eab1e8571..7cf4bb948 100644 --- a/citadel/modules/imap/serv_imap.c +++ b/citadel/modules/imap/serv_imap.c @@ -366,7 +366,7 @@ void imap_rescan_msgids(void) */ cdbfr = cdb_fetch(CDB_MSGLISTS, &CC->room.QRnumber, sizeof(long)); if (cdbfr != NULL) { - msglist = malloc(cdbfr->len); + msglist = malloc(cdbfr->len + 1); if (msglist == NULL) { syslog(LOG_CRIT, "IMAP: malloc() failed"); CC->kill_me = KILLME_MALLOC_FAILED; @@ -460,7 +460,7 @@ void imap_rescan_msgids(void) IAPrintf("* %d RECENT\r\n", num_recent); } - if (num_msgs != 0) { + if (msglist != NULL) { free(msglist); } Imap->last_mtime = CC->room.QRmtime;