Allow compilation from a build directory
[tinc] / src / xmalloc.c
index a687433..1f354dd 100644 (file)
@@ -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 <sys/types.h>
@@ -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);