diff options
| author | Pau Espin Pedrol <pespin@sysmocom.de> | 2017-06-18 13:10:57 +0200 | 
|---|---|---|
| committer | Harald Welte <laforge@gnumonks.org> | 2017-06-22 18:14:18 +0000 | 
| commit | 00f4ef7262519ccb48213c9b844e1e015b1c3046 (patch) | |
| tree | c3b2f7e143d0b577a1618da6dbc84e0500b65806 /src | |
| parent | ffa41ca6654178050bd3c150b9bb5e2a4375c30d (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
Diffstat (limited to 'src')
| -rw-r--r-- | src/pseudotalloc/pseudotalloc.c | 16 | ||||
| -rw-r--r-- | src/pseudotalloc/talloc.h | 2 | 
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, ...); | 
