Return to vars.c CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / libelwix / src |
version 1.8, 2015/06/25 17:53:50 | version 1.9, 2016/05/18 12:47:42 |
---|---|
Line 794 ait_sprintfVar(ait_val_t * __restrict v, const char *f | Line 794 ait_sprintfVar(ait_val_t * __restrict v, const char *f |
{ | { |
int ret = 0; | int ret = 0; |
va_list lst; | va_list lst; |
char *str = NULL; | char str[STRSIZ] = { [0 ... STRSIZ - 1] = 0 }; |
if (!v || !fmt) | if (!v || !fmt) |
return -1; | return -1; |
va_start(lst, fmt); | va_start(lst, fmt); |
ret = vasprintf(&str, fmt, lst); | ret = vsnprintf(str, sizeof str - 1, fmt, lst); |
va_end(lst); | va_end(lst); |
if (str && ret > -1) { | if (ret > -1) { |
AIT_FREE_VAL(v); | AIT_FREE_VAL(v); |
AIT_SET_STR(v, str); | AIT_SET_STR(v, str); |
} else | } else |
LOGERR; | LOGERR; |
if (str) | |
free(str); | |
return ret; | return ret; |
} | } |