]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: Avoid accessing already freed "reason" when purging
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 30 Mar 2021 13:50:13 +0000 (16:50 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 30 Mar 2021 13:53:36 +0000 (16:53 +0300)
Broken by 4b60d609c05d334d29a72c6dbbe301a66f518089

src/lib-index/mail-cache-purge.c

index c61c0712957b418d031e47e5d266f7bd874ed097..5a56f36d11a1a06cbdbef88f7d5aaf8d79d0f1f4 100644 (file)
@@ -645,7 +645,9 @@ bool mail_cache_need_purge(struct mail_cache *cache, const char **reason_r)
        }
 
        i_assert(cache->need_purge_reason != NULL);
-       *reason_r = cache->need_purge_reason;
+       /* t_strdup() the reason in case it gets freed (or replaced)
+          before it's used */
+       *reason_r = t_strdup(cache->need_purge_reason);
        return TRUE;
 }