aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2017-06-18 13:10:57 +0200
committerHarald Welte <laforge@gnumonks.org>2017-06-22 18:14:18 +0000
commit00f4ef7262519ccb48213c9b844e1e015b1c3046 (patch)
treec3b2f7e143d0b577a1618da6dbc84e0500b65806
parentffa41ca6654178050bd3c150b9bb5e2a4375c30d (diff)
pseudotalloc: Add simplistic implementation of talloc_asprintf
fsm.c uses this function. When compiled with --enable-embedded, it triggers a warning: fsm.c: In function 'osmo_fsm_inst_alloc': fsm.c:213:4: warning: implicit declaration of function 'talloc_asprintf' [-Wimplicit-function-declaration] fi->name = talloc_asprintf(fi, "%s(%s)", fsm->name, id); Change-Id: I61cd83d4c8570af1e452c945ac6f194baf7e6ac4
-rw-r--r--src/pseudotalloc/pseudotalloc.c16
-rw-r--r--src/pseudotalloc/talloc.h2
2 files changed, 17 insertions, 1 deletions
diff --git a/src/pseudotalloc/pseudotalloc.c b/src/pseudotalloc/pseudotalloc.c
index fe7f1edc..bc7a4910 100644
--- a/src/pseudotalloc/pseudotalloc.c
+++ b/src/pseudotalloc/pseudotalloc.c
@@ -5,6 +5,7 @@
#include "talloc.h"
#include <string.h>
+#include <stdio.h>
void *_talloc_zero(const void *ctx, size_t size, const char *name)
{
@@ -61,3 +62,18 @@ void *_talloc_zero_array(const void *ctx, size_t el_size, unsigned count, const
{
return talloc_zero_size(ctx, el_size * count);
}
+
+char *talloc_asprintf(const void *ctx, const char *fmt, ...)
+{
+ char *buf;
+ size_t len = 128;
+ va_list args;
+ va_start(args, fmt);
+
+ buf = talloc_size(ctx, len);
+ if (len < vsnprintf(buf, len, fmt, args))
+ strcpy(&buf[len-6], "[...]");
+
+ va_end(args);
+ return buf;
+}
diff --git a/src/pseudotalloc/talloc.h b/src/pseudotalloc/talloc.h
index c7127deb..f4c0a74f 100644
--- a/src/pseudotalloc/talloc.h
+++ b/src/pseudotalloc/talloc.h
@@ -39,4 +39,4 @@ void *_talloc_zero_array(const void *ctx,
size_t el_size,
unsigned count,
const char *name);
-
+char *talloc_asprintf(const void *ctx, const char *fmt, ...);