commit deddd07: [Minor] Do not use crypto PRG for mempool uids
Vsevolod Stakhov
vsevolod at rspamd.com
Wed Aug 23 14:56:03 UTC 2023
Author: Vsevolod Stakhov
Date: 2023-08-23 13:37:47 +0100
URL: https://github.com/rspamd/rspamd/commit/deddd071765839a9327058a260f253d52f12355a
[Minor] Do not use crypto PRG for mempool uids
---
src/libutil/mem_pool.c | 11 ++++-------
src/libutil/mem_pool.h | 4 ++--
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/libutil/mem_pool.c b/src/libutil/mem_pool.c
index bbd302a23..02b5ed3c4 100644
--- a/src/libutil/mem_pool.c
+++ b/src/libutil/mem_pool.c
@@ -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++;
diff --git a/src/libutil/mem_pool.h b/src/libutil/mem_pool.h
index 425a6b297..aea5f4ae8 100644
--- a/src/libutil/mem_pool.h
+++ b/src/libutil/mem_pool.h
@@ -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
More information about the Commits
mailing list