]> source.dussan.org Git - rspamd.git/commitdiff
Do not actually allow to set zero size to statfiles.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 5 Dec 2013 00:09:33 +0000 (00:09 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 5 Dec 2013 00:09:33 +0000 (00:09 +0000)
src/statfile.c

index 9930e0fe05e5f9a333db3ec417c91c4638295bea..b5d4674267913d41a768e201c8369ce48612e0a2 100644 (file)
@@ -307,11 +307,14 @@ statfile_pool_open (statfile_pool_t * pool, gchar *filename, size_t size, gboole
        }
 
        memory_pool_lock_mutex (pool->lock);
-       if (!forced && abs (st.st_size - size) > (gint)sizeof (struct stat_file)) {
+       if (!forced && size > sizeof (struct stat_file)) {
                memory_pool_unlock_mutex (pool->lock);
                msg_warn ("need to reindex statfile old size: %Hz, new size: %Hz", st.st_size, size);
                return statfile_pool_reindex (pool, filename, st.st_size, size);
        }
+       else if (size < sizeof (struct stat_file)) {
+               msg_err ("requested to shrink statfile to %Hz but it is too small", size);
+       }
 
        new_file = &pool->files[pool->opened++];
        bzero (new_file, sizeof (stat_file_t));