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(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: neels <nhofmeyr(a)sysmocom.de>
Gerrit-MessageType: merged