]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Do not use crypto PRG for mempool uids
authorVsevolod Stakhov <vsevolod@rspamd.com>
Wed, 23 Aug 2023 12:37:47 +0000 (13:37 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Wed, 23 Aug 2023 12:37:47 +0000 (13:37 +0100)
src/libutil/mem_pool.c
src/libutil/mem_pool.h

index bbd302a23531a7c38750078545ecc597f6dd5cd8..02b5ed3c4ac3c2cdf2b509394c14f352f473a87a 100644 (file)
@@ -284,7 +284,6 @@ rspamd_mempool_new_(gsize size, const gchar *tag, gint flags, const gchar *loc)
 {
        rspamd_mempool_t *new_pool;
        gpointer map;
-       unsigned char uidbuf[10];
        const gchar hexdigits[] = "0123456789abcdef";
        unsigned i;
 
@@ -405,12 +404,10 @@ rspamd_mempool_new_(gsize size, const gchar *tag, gint flags, const gchar *loc)
        }
 
        /* Generate new uid */
-       ottery_rand_bytes(uidbuf, sizeof(uidbuf));
-       for (i = 0; i < G_N_ELEMENTS(uidbuf); i++) {
-               new_pool->tag.uid[i * 2] = hexdigits[(uidbuf[i] >> 4) & 0xf];
-               new_pool->tag.uid[i * 2 + 1] = hexdigits[uidbuf[i] & 0xf];
-       }
-       new_pool->tag.uid[19] = '\0';
+       uint64_t uid = rspamd_random_uint64_fast();
+       rspamd_encode_hex_buf((unsigned char *) &uid, sizeof(uid),
+                                                 new_pool->tag.uid, sizeof(new_pool->tag.uid) - 1);
+       new_pool->tag.uid[sizeof(new_pool->tag.uid) - 1] = '\0';
 
        mem_pool_stat->pools_allocated++;
 
index 425a6b297e318567ad2b225ffcb4f50269f69f5a..aea5f4ae8260a9e0dafa2e7b2c47c2932792ed65 100644 (file)
@@ -70,8 +70,8 @@ struct f_str_s;
 #define RSPAMD_ATTR_RETURNS_NONNUL
 #endif
 
-#define MEMPOOL_TAG_LEN 20
-#define MEMPOOL_UID_LEN 20
+#define MEMPOOL_TAG_LEN 16
+#define MEMPOOL_UID_LEN 16
 /* All pointers are aligned as this variable */
 #define MIN_MEM_ALIGNMENT G_MEM_ALIGN