aboutsummaryrefslogtreecommitdiffstats
path: root/src/mem_pool.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2009-05-04 18:55:12 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2009-05-04 18:55:12 +0400
commit05556b30f9f309abc532f26c86a2e8266c2e72c7 (patch)
tree70007f830b786030de17e38df04754907094bb81 /src/mem_pool.c
parente30ea48c912be20ddc9c327205d146e46d60535e (diff)
downloadrspamd-05556b30f9f309abc532f26c86a2e8266c2e72c7.tar.gz
rspamd-05556b30f9f309abc532f26c86a2e8266c2e72c7.zip
* Add counters for rspamd symbols
* Fix shared hashes
Diffstat (limited to 'src/mem_pool.c')
-rw-r--r--src/mem_pool.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/mem_pool.c b/src/mem_pool.c
index 66d9ace19..df4c544f9 100644
--- a/src/mem_pool.c
+++ b/src/mem_pool.c
@@ -200,6 +200,16 @@ memory_pool_alloc0 (memory_pool_t *pool, memory_pool_ssize_t size)
return pointer;
}
+void *
+memory_pool_alloc0_shared (memory_pool_t *pool, memory_pool_ssize_t size)
+{
+ void *pointer = memory_pool_alloc_shared (pool, size);
+ if (pointer) {
+ bzero (pointer, size);
+ }
+ return pointer;
+}
+
char *
memory_pool_strdup (memory_pool_t *pool, const char *src)
{
@@ -212,10 +222,29 @@ memory_pool_strdup (memory_pool_t *pool, const char *src)
len = strlen (src);
newstr = memory_pool_alloc (pool, len + 1);
- memcpy (newstr, src, len + 1);
+ memcpy (newstr, src, len);
+ newstr[len] = '\0';
+ return newstr;
+}
+
+char *
+memory_pool_strdup_shared (memory_pool_t *pool, const char *src)
+{
+ memory_pool_ssize_t len;
+ char *newstr;
+
+ if (src == NULL) {
+ return NULL;
+ }
+
+ len = strlen (src);
+ newstr = memory_pool_alloc_shared (pool, len + 1);
+ memcpy (newstr, src, len);
+ newstr[len] = '\0';
return newstr;
}
+
void *
memory_pool_alloc_shared (memory_pool_t *pool, memory_pool_ssize_t size)
{