X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Fxmalloc.c;h=51356e460b71b45c48d08cf9e6b3e0436b28db50;hp=d02f41b9ad23a7e475b99ae84060d3399bd35c84;hb=5e0efd53e797a2b5468b91b41b6122f3b942efb2;hpb=63fe89e9eb8ef9077bfe3cd416c86820715eb33b diff --git a/lib/xmalloc.c b/lib/xmalloc.c index d02f41b9..51356e46 100644 --- a/lib/xmalloc.c +++ b/lib/xmalloc.c @@ -22,6 +22,8 @@ #include #include #include +#include +#include #if STDC_HEADERS # include @@ -138,3 +140,21 @@ xcalloc (n, s) } #endif /* NOT_USED */ + +int xasprintf(char **strp, const char *fmt, ...) { + int result; + va_list ap; + va_start(ap, fmt); + result = xvasprintf(strp, fmt, ap); + va_end(ap); + return result; +} + +int xvasprintf(char **strp, const char *fmt, va_list ap) { + int result = vasprintf(strp, fmt, ap); + if(result < 0) { + fprintf(stderr, "vasprintf() failed: %s\n", strerror(errno)); + exit(xalloc_exit_failure); + } + return result; +}