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

Diff for /src/usr.bin/sudo/Attic/alloc.c between version 1.10 and 1.11

version 1.10, 2007/10/17 04:26:04 version 1.11, 2008/11/14 11:58:08
Line 1 
Line 1 
 /*  /*
  * Copyright (c) 1999-2005 Todd C. Miller <Todd.Miller@courtesan.com>   * Copyright (c) 1999-2005, 2007
    *      Todd C. Miller <Todd.Miller@courtesan.com>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 41 
Line 42 
 #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS)  #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS)
 # include <malloc.h>  # include <malloc.h>
 #endif /* HAVE_MALLOC_H && !STDC_HEADERS */  #endif /* HAVE_MALLOC_H && !STDC_HEADERS */
 #ifdef HAVE_ERR_H  
 # include <err.h>  
 #else  
 # include "emul/err.h"  
 #endif /* HAVE_ERR_H */  
 #ifdef HAVE_INTTYPES_H  #ifdef HAVE_INTTYPES_H
 # include <inttypes.h>  # include <inttypes.h>
 #endif  #endif
Line 53 
Line 49 
 #include "sudo.h"  #include "sudo.h"
   
 #ifndef lint  #ifndef lint
 __unused static const char rcsid[] = "$Sudo: alloc.c,v 1.23.2.4 2007/09/11 12:20:15 millert Exp $";  __unused static const char rcsid[] = "$Sudo: alloc.c,v 1.33 2008/11/09 14:13:12 millert Exp $";
 #endif /* lint */  #endif /* lint */
   
 /*  /*
Line 74 
Line 70 
  * emalloc() calls the system malloc(3) and exits with an error if   * emalloc() calls the system malloc(3) and exits with an error if
  * malloc(3) fails.   * malloc(3) fails.
  */   */
 VOID *  void *
 emalloc(size)  emalloc(size)
     size_t size;      size_t size;
 {  {
     VOID *ptr;      void *ptr;
   
     if (size == 0)      if (size == 0)
         errx(1, "internal error, tried to emalloc(0)");          errorx(1, "internal error, tried to emalloc(0)");
   
     if ((ptr = (VOID *) malloc(size)) == NULL)      if ((ptr = malloc(size)) == NULL)
         errx(1, "unable to allocate memory");          errorx(1, "unable to allocate memory");
     return(ptr);      return(ptr);
 }  }
   
Line 92 
Line 88 
  * emalloc2() allocates nmemb * size bytes and exits with an error   * emalloc2() allocates nmemb * size bytes and exits with an error
  * if overflow would occur or if the system malloc(3) fails.   * if overflow would occur or if the system malloc(3) fails.
  */   */
 VOID *  void *
 emalloc2(nmemb, size)  emalloc2(nmemb, size)
     size_t nmemb;      size_t nmemb;
     size_t size;      size_t size;
 {  {
     VOID *ptr;      void *ptr;
   
     if (nmemb == 0 || size == 0)      if (nmemb == 0 || size == 0)
         errx(1, "internal error, tried to emalloc2(0)");          errorx(1, "internal error, tried to emalloc2(0)");
     if (nmemb > SIZE_MAX / size)      if (nmemb > SIZE_MAX / size)
         errx(1, "internal error, emalloc2() overflow");          errorx(1, "internal error, emalloc2() overflow");
   
     size *= nmemb;      size *= nmemb;
     if ((ptr = (VOID *) malloc(size)) == NULL)      if ((ptr = malloc(size)) == NULL)
         errx(1, "unable to allocate memory");          errorx(1, "unable to allocate memory");
     return(ptr);      return(ptr);
 }  }
   
Line 115 
Line 111 
  * realloc(3) fails.  You can call erealloc() with a NULL pointer even   * realloc(3) fails.  You can call erealloc() with a NULL pointer even
  * if the system realloc(3) does not support this.   * if the system realloc(3) does not support this.
  */   */
 VOID *  void *
 erealloc(ptr, size)  erealloc(ptr, size)
     VOID *ptr;      void *ptr;
     size_t size;      size_t size;
 {  {
   
     if (size == 0)      if (size == 0)
         errx(1, "internal error, tried to erealloc(0)");          errorx(1, "internal error, tried to erealloc(0)");
   
     ptr = ptr ? (VOID *) realloc(ptr, size) : (VOID *) malloc(size);      ptr = ptr ? realloc(ptr, size) : malloc(size);
     if (ptr == NULL)      if (ptr == NULL)
         errx(1, "unable to allocate memory");          errorx(1, "unable to allocate memory");
     return(ptr);      return(ptr);
 }  }
   
Line 136 
Line 132 
  * You can call erealloc() with a NULL pointer even if the system realloc(3)   * You can call erealloc() with a NULL pointer even if the system realloc(3)
  * does not support this.   * does not support this.
  */   */
 VOID *  void *
 erealloc3(ptr, nmemb, size)  erealloc3(ptr, nmemb, size)
     VOID *ptr;      void *ptr;
     size_t nmemb;      size_t nmemb;
     size_t size;      size_t size;
 {  {
   
     if (nmemb == 0 || size == 0)      if (nmemb == 0 || size == 0)
         errx(1, "internal error, tried to erealloc3(0)");          errorx(1, "internal error, tried to erealloc3(0)");
     if (nmemb > SIZE_MAX / size)      if (nmemb > SIZE_MAX / size)
         errx(1, "internal error, erealloc3() overflow");          errorx(1, "internal error, erealloc3() overflow");
   
     size *= nmemb;      size *= nmemb;
     ptr = ptr ? (VOID *) realloc(ptr, size) : (VOID *) malloc(size);      ptr = ptr ? realloc(ptr, size) : malloc(size);
     if (ptr == NULL)      if (ptr == NULL)
         errx(1, "unable to allocate memory");          errorx(1, "unable to allocate memory");
     return(ptr);      return(ptr);
 }  }
   
Line 199 
Line 195 
     va_end(ap);      va_end(ap);
   
     if (len == -1)      if (len == -1)
         errx(1, "unable to allocate memory");          errorx(1, "unable to allocate memory");
     return(len);      return(len);
 }  }
   
Line 216 
Line 212 
     int len;      int len;
   
     if ((len = vasprintf(ret, format, args)) == -1)      if ((len = vasprintf(ret, format, args)) == -1)
         errx(1, "unable to allocate memory");          errorx(1, "unable to allocate memory");
     return(len);      return(len);
 }  }
   
Line 225 
Line 221 
  */   */
 void  void
 efree(ptr)  efree(ptr)
     VOID *ptr;      void *ptr;
 {  {
     if (ptr != NULL)      if (ptr != NULL)
         free(ptr);          free(ptr);

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11