Provided by: publib-dev_0.40-2_amd64 bug

NAME

       xmalloc,  xrealloc,  xfree,  xstrdup,  xmemdup,  memdup  - memory allocation functions for
       Publib

SYNOPSIS

       #include <publib.h>

       void *xmalloc(size_t bytes);
       void *xrealloc(void *ptr, size_t bytes);
       void xfree(void *ptr);
       char *xstrdup(const char *string);
       void *memdup(const void *mem, size_t bytes);
       void *xmemdup(const void *mem, size_t bytes);

DESCRIPTION

       These functions are utility functions for  memory  allocation  from  the  publib  library.
       xmalloc,  xrealloc, and xfree are error checking versions of the standard library routines
       malloc, realloc, and free, respectively.  They are guaranteed to never return unless there
       was  no  problem:  if,  for example, xmalloc is unable to allocate the requested amount of
       memory, it prints an error message and terminates the program.  Hence, the caller does not
       need  to check for a NULL return value, and the code that calls these functions is simpler
       due to the lack of error checks.

       Similarly, xstrdup is an error checking version of the common (though not standard) strdup
       routine,  which  creates  a  duplicate  of a string by allocating memory for the copy with
       malloc.  (For systems that lack strdup, publib provides one in its portability module;  it
       is always declared in <publib.h>.)

       memdup  is similar to strdup, it creates a copy of an arbitrary memory area (the arguments
       are a pointer to the beginning of the area, and its size) by  allocating  memory  for  the
       copy with malloc.  xmemdup is its error checking version.

NOTE

       xmalloc and xrealloc treat a request to allocate a block of 0 bytes as an error.  xrealloc
       will allow its first argument to be NULL.

SEE ALSO

       publib(3), malloc(3), strdup(3)

AUTHOR

       Lars Wirzenius (lars.wirzenius@helsinki.fi)