From 67a0f9eecf3f0f351afaf2f675fded998312a6fc Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 9 Sep 2016 17:40:58 +0300 Subject: [PATCH] fts-squat: Fixed memory leak on corrupted uidlist handling --- src/plugins/fts-squat/squat-uidlist.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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;