]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts-squat: Fixed memory leak on corrupted uidlist handling
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 9 Sep 2016 14:40:58 +0000 (17:40 +0300)
committerGitLab <gitlab@git.dovecot.net>
Tue, 13 Sep 2016 14:51:25 +0000 (17:51 +0300)
src/plugins/fts-squat/squat-uidlist.c

index 923835ee8d21c515b051c60112685f7e1ffbfb11..6682c2035eecdeaca686582fe01fa9c77a01bf14 100644 (file)
@@ -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;