[BACK]Return to xmalloc.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/xmalloc.c between version 1.16.20.1 and 1.17

version 1.16.20.1, 2006/09/30 04:06:51 version 1.17, 2006/03/19 18:51:19
Line 1 
Line 1 
 /* $OpenBSD$ */  
 /*  /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>   * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland   * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
Line 13 
Line 12 
  * called by a name other than "ssh" or "Secure Shell".   * called by a name other than "ssh" or "Secure Shell".
  */   */
   
 #include <sys/param.h>  #include "includes.h"
 #include <stdarg.h>  
 #include <stdio.h>  
 #include <stdlib.h>  
 #include <string.h>  
   
 #include "xmalloc.h"  #include "xmalloc.h"
 #include "log.h"  #include "log.h"
Line 36 
Line 31 
 }  }
   
 void *  void *
 xcalloc(size_t nmemb, size_t size)  xrealloc(void *ptr, size_t new_size)
 {  {
         void *ptr;  
   
         if (size == 0 || nmemb == 0)  
                 fatal("xcalloc: zero size");  
         if (SIZE_T_MAX / nmemb < size)  
                 fatal("xcalloc: nmemb * size > SIZE_T_MAX");  
         ptr = calloc(nmemb, size);  
         if (ptr == NULL)  
                 fatal("xcalloc: out of memory (allocating %lu bytes)",  
                     (u_long)(size * nmemb));  
         return ptr;  
 }  
   
 void *  
 xrealloc(void *ptr, size_t nmemb, size_t size)  
 {  
         void *new_ptr;          void *new_ptr;
         size_t new_size = nmemb * size;  
   
         if (new_size == 0)          if (new_size == 0)
                 fatal("xrealloc: zero size");                  fatal("xrealloc: zero size");
         if (SIZE_T_MAX / nmemb < size)  
                 fatal("xrealloc: nmemb * size > SIZE_T_MAX");  
         if (ptr == NULL)          if (ptr == NULL)
                 new_ptr = malloc(new_size);                  new_ptr = malloc(new_size);
         else          else
                 new_ptr = realloc(ptr, new_size);                  new_ptr = realloc(ptr, new_size);
         if (new_ptr == NULL)          if (new_ptr == NULL)
                 fatal("xrealloc: out of memory (new_size %lu bytes)",                  fatal("xrealloc: out of memory (new_size %lu bytes)", (u_long) new_size);
                     (u_long) new_size);  
         return new_ptr;          return new_ptr;
 }  }
   
Line 89 
Line 64 
         cp = xmalloc(len);          cp = xmalloc(len);
         strlcpy(cp, str, len);          strlcpy(cp, str, len);
         return cp;          return cp;
 }  
   
 int  
 xasprintf(char **ret, const char *fmt, ...)  
 {  
         va_list ap;  
         int i;  
   
         va_start(ap, fmt);  
         i = vasprintf(ret, fmt, ap);  
         va_end(ap);  
   
         if (i < 0 || *ret == NULL)  
                 fatal("xasprintf: could not allocate memory");  
   
         return (i);  
 }  }

Legend:
Removed from v.1.16.20.1  
changed lines
  Added in v.1.17