]> andersk Git - openssh.git/blobdiff - xmalloc.c
[buildpkg.sh.in] Last minute fix didn't make it in the .in file. :-(
[openssh.git] / xmalloc.c
index 35f668df39f33352b53988db9986143f6fe2573e..99c6ac3301ae9494c23ce59eedfc1722e7d2ed86 100644 (file)
--- a/xmalloc.c
+++ b/xmalloc.c
@@ -13,7 +13,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: xmalloc.c,v 1.10 2001/01/28 20:53:21 stevesk Exp $");
+RCSID("$OpenBSD: xmalloc.c,v 1.16 2001/07/23 18:21:46 stevesk Exp $");
 
 #include "xmalloc.h"
 #include "log.h"
@@ -21,9 +21,13 @@ RCSID("$OpenBSD: xmalloc.c,v 1.10 2001/01/28 20:53:21 stevesk Exp $");
 void *
 xmalloc(size_t size)
 {
-       void *ptr = malloc(size);
+       void *ptr;
+
+       if (size == 0)
+               fatal("xmalloc: zero size");
+       ptr = malloc(size);
        if (ptr == NULL)
-               fatal("xmalloc: out of memory (allocating %d bytes)", (int) size);
+               fatal("xmalloc: out of memory (allocating %lu bytes)", (u_long) size);
        return ptr;
 }
 
@@ -32,11 +36,14 @@ xrealloc(void *ptr, size_t new_size)
 {
        void *new_ptr;
 
+       if (new_size == 0)
+               fatal("xrealloc: zero size");
        if (ptr == NULL)
-               fatal("xrealloc: NULL pointer given as argument");
-       new_ptr = realloc(ptr, new_size);
+               new_ptr = malloc(new_size);
+       else
+               new_ptr = realloc(ptr, new_size);
        if (new_ptr == NULL)
-               fatal("xrealloc: out of memory (new_size %d bytes)", (int) new_size);
+               fatal("xrealloc: out of memory (new_size %lu bytes)", (u_long) new_size);
        return new_ptr;
 }
 
@@ -51,9 +58,11 @@ xfree(void *ptr)
 char *
 xstrdup(const char *str)
 {
-       size_t len = strlen(str) + 1;
+       size_t len;
+       char *cp;
 
-       char *cp = xmalloc(len);
+       len = strlen(str) + 1;
+       cp = xmalloc(len);
        strlcpy(cp, str, len);
        return cp;
 }
This page took 0.034232 seconds and 4 git commands to generate.