From: Timo Sirainen Date: Fri, 9 Sep 2016 14:40:58 +0000 (+0300) Subject: fts-squat: Fixed memory leak on corrupted uidlist handling X-Git-Tag: 2.3.0.rc1~3040 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67a0f9eecf3f0f351afaf2f675fded998312a6fc;p=thirdparty%2Fdovecot%2Fcore.git fts-squat: Fixed memory leak on corrupted uidlist handling --- diff --git a/src/plugins/fts-squat/squat-uidlist.c b/src/plugins/fts-squat/squat-uidlist.c index 923835ee8d..6682c2035e 100644 --- a/src/plugins/fts-squat/squat-uidlist.c +++ b/src/plugins/fts-squat/squat-uidlist.c @@ -195,8 +195,11 @@ uidlist_write_array(struct ostream *output, const uint32_t *uid_list, prev = 0; for (i = 0; i < uid_count; i++) { uid = uid_list[i]; - if (unlikely((uid & ~UID_LIST_MASK_RANGE) < prev)) + if (unlikely((uid & ~UID_LIST_MASK_RANGE) < prev)) { + if (!datastack) + i_free(uidbuf); return -1; + } if ((uid & UID_LIST_MASK_RANGE) == 0) { squat_pack_num(&bufp, (uid - prev) << 1); prev = uid + 1;