X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fxmalloc.c;h=1f354dd1a0360e3a32851737c7581eaf641cc84d;hp=a6874332091f1685ba14f863b19ca0d286ecfc77;hb=acd018074972f9c13ffecffb618f799d914bbe97;hpb=5eb72b73d3cd842e71e525413a46a55644ac3583 diff --git a/src/xmalloc.c b/src/xmalloc.c index a6874332..1f354dd1 100644 --- a/src/xmalloc.c +++ b/src/xmalloc.c @@ -16,7 +16,7 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #if HAVE_CONFIG_H -# include "../config.h" +# include "config.h" #endif #include @@ -113,9 +113,12 @@ char *xstrdup(const char *s) { char *p; + if(!s) + return NULL; + p = strdup(s); if(!p) - xalloc_fail (s ? (int)strlen(s) : 0); + xalloc_fail ((int)strlen(s)); return p; } @@ -152,6 +155,7 @@ int xvasprintf(char **strp, const char *fmt, va_list ap) { int result = vsnprintf(buf, sizeof buf, fmt, ap); if(result < 0) exit(xalloc_exit_failure); + buf[sizeof buf - 1] = 0; *strp = xstrdup(buf); #else int result = vasprintf(strp, fmt, ap);