[S] Change in libosmocore[master]: pseudotalloc: add talloc_memdup(), use it in talloc_strdup()
fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35467?usp=email ) ( 3 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: pseudotalloc: add talloc_memdup(), use it in talloc_strdup() ...................................................................... pseudotalloc: add talloc_memdup(), use it in talloc_strdup() Change-Id: Ifcf377c3496a9e75404932a1aaba7d74888cf4cf --- M src/pseudotalloc/pseudotalloc.c M src/pseudotalloc/talloc.h 2 files changed, 22 insertions(+), 12 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/pseudotalloc/pseudotalloc.c b/src/pseudotalloc/pseudotalloc.c index 25425e5..895c6dd 100644 --- a/src/pseudotalloc/pseudotalloc.c +++ b/src/pseudotalloc/pseudotalloc.c @@ -55,21 +55,21 @@ { } -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; + ptr = talloc_size(ctx, size); + if (ptr && p) + memcpy(ptr, p, size); + return ptr; +} + +char *talloc_strdup(const void *ctx, const char *p) +{ if (!p) return NULL; - len = strlen(p); - - ptr = talloc_size(context, len+1); - if (!ptr) - 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 d257a98..3893599 100644 --- a/src/pseudotalloc/talloc.h +++ b/src/pseudotalloc/talloc.h @@ -50,7 +50,8 @@ 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); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35467?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ifcf377c3496a9e75404932a1aaba7d74888cf4cf Gerrit-Change-Number: 35467 Gerrit-PatchSet: 5 Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: pespin <pespin@sysmocom.de> Gerrit-CC: neels <nhofmeyr@sysmocom.de> Gerrit-MessageType: merged
participants (1)
-
fixeria