Provided by: trafficserver-dev_9.1.3+ds-1_amd64 bug

NAME

       TSmalloc - traffic Server memory allocation API

SYNOPSIS

          #include <ts/ts.h>

       void *TSmalloc(size_t size)

       void *TSrealloc(void *ptr, size_t size)

       char *TSstrdup(const char *str)

       char *TSstrndup(const char *str, size_t size)

       size_t TSstrlcpy(char *dst, const char *src, size_t size)

       size_t TSstrlcat(char *dst, const char *src, size_t size)

       void TSfree(void *ptr)

DESCRIPTION

       Traffic  Server  provides  a  number  of routines for allocating and freeing memory. These
       routines correspond to similar routines  in  the  C  library.   For  example,  TSrealloc()
       behaves  like  the  C  library routine realloc.  There are two reasons to use the routines
       provided by Traffic Server. The first is portability.  The  Traffic  Server  API  routines
       behave  the  same on all of Traffic Servers supported platforms. For example, realloc does
       not accept an argument of NULL on some platforms. The second reason is  that  the  Traffic
       Server  routines  actually  track  the  memory  allocations  by file and line number. This
       tracking is very efficient, is always turned on, and is useful for  tracking  down  memory
       leaks.

       TSmalloc()  returns  a  pointer  to  size bytes of memory allocated from the heap. Traffic
       Server uses TSmalloc() internally for memory allocations.  Always use TSfree() to  release
       memory allocated by TSmalloc(); do not use free.

       TSstrdup()  returns a pointer to a new string that is a duplicate of the string pointed to
       by str. The memory for the new string is allocated using TSmalloc() and should be freed by
       a  call to TSfree().  TSstrndup() returns a pointer to a new string that is a duplicate of
       the string pointed to by str but is at most size  bytes  long.  The  new  string  will  be
       NUL-terminated.  This API is very useful for transforming non NUL-terminated string values
       returned by APIs such as TSMimeHdrFieldValueStringGet() into NUL-terminated string values.
       The  memory for the new string is allocated using TSmalloc() and should be freed by a call
       to TSfree().

       TSstrlcpy() copies up to size - 1 characters from the NUL-terminated string  src  to  dst,
       NUL-terminating the result.

       TSstrlcat()  appends  the  NUL-terminated  string src to the end of dst. It will append at
       most size - strlen(dst) - 1 bytes, NUL-terminating the result.

       TSfree() releases the memory allocated by TSmalloc()  or  TSrealloc().  If  ptr  is  NULL,
       TSfree() does no operation.

SEE ALSO

       TSAPI(3ts)

COPYRIGHT

       2022, dev@trafficserver.apache.org