aboutsummaryrefslogtreecommitdiffstats
path: root/src/pseudotalloc
diff options
context:
space:
mode:
Diffstat (limited to 'src/pseudotalloc')
-rw-r--r--src/pseudotalloc/Makefile.am3
-rw-r--r--src/pseudotalloc/pseudotalloc.c22
-rw-r--r--src/pseudotalloc/talloc.h3
3 files changed, 15 insertions, 13 deletions
diff --git a/src/pseudotalloc/Makefile.am b/src/pseudotalloc/Makefile.am
index 3c78bba8..030b281b 100644
--- a/src/pseudotalloc/Makefile.am
+++ b/src/pseudotalloc/Makefile.am
@@ -1,4 +1,5 @@
-AM_CFLAGS = -Wall -I. $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include
+AM_CPPFLAGS = -I. -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_builddir)
+AM_CFLAGS = -Wall
if ENABLE_PSEUDOTALLOC
diff --git a/src/pseudotalloc/pseudotalloc.c b/src/pseudotalloc/pseudotalloc.c
index 25425e57..895c6dd0 100644
--- a/src/pseudotalloc/pseudotalloc.c
+++ b/src/pseudotalloc/pseudotalloc.c
@@ -55,21 +55,21 @@ void talloc_set_name_const(const void *ptr, const char *name)
{
}
-char *talloc_strdup(const void *context, const char *p)
+void *talloc_memdup(const void *ctx, const void *p, size_t size)
{
- char *ptr;
- size_t len;
+ void *ptr;
- if (!p)
- return NULL;
- len = strlen(p);
+ ptr = talloc_size(ctx, size);
+ if (ptr && p)
+ memcpy(ptr, p, size);
+ return ptr;
+}
- ptr = talloc_size(context, len+1);
- if (!ptr)
+char *talloc_strdup(const void *ctx, const char *p)
+{
+ if (!p)
return NULL;
- memcpy(ptr, p, len+1);
-
- return ptr;
+ return talloc_memdup(ctx, p, strlen(p) + 1);
}
void *talloc_pool(const void *context, size_t size)
diff --git a/src/pseudotalloc/talloc.h b/src/pseudotalloc/talloc.h
index d257a981..38935991 100644
--- a/src/pseudotalloc/talloc.h
+++ b/src/pseudotalloc/talloc.h
@@ -50,7 +50,8 @@ int _talloc_free(void *ptr, const char *location);
void *talloc_named_const(const void *context, size_t size, const char *name);
void *talloc_named(const void *context, size_t size, const char *fmt, ...);
void talloc_set_name_const(const void *ptr, const char *name);
-char *talloc_strdup(const void *t, const char *p);
+void *talloc_memdup(const void *ctx, const void *p, size_t size);
+char *talloc_strdup(const void *ctx, const char *p);
void *talloc_pool(const void *context, size_t size);
#define talloc_array(ctx, type, count) (type *)_talloc_array(ctx, sizeof(type), count, #type)
void *_talloc_array(const void *ctx, size_t el_size, unsigned count, const char *name);