X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=miscutil.c;h=619ff5b50c67ff562db2ffe4210bc14d45260ea0;hb=3d2d6a157f8b301b27c95d57a74ccf3d9bfa870c;hp=1a614c11c05c96c84e2d037628e70425fcb075b1;hpb=5e758f724e63e91c6aa7ff346dc74812e19c24aa;p=privoxy.git diff --git a/miscutil.c b/miscutil.c index 1a614c11..619ff5b5 100644 --- a/miscutil.c +++ b/miscutil.c @@ -1,4 +1,4 @@ -const char miscutil_rcs[] = "$Id: miscutil.c,v 1.71 2012/03/04 11:48:54 fabiankeil Exp $"; +const char miscutil_rcs[] = "$Id: miscutil.c,v 1.72 2012/03/04 11:51:25 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/miscutil.c,v $ @@ -93,6 +93,42 @@ void *zalloc(size_t size) } +/********************************************************************* + * + * Function : strdup_or_die + * + * Description : strdup wrapper that either succeeds or causes + * program termination. + * + * Useful in situations were the string length is + * "small" and strdup() failures couldn't be handled + * better anyway. In case of debug builds, failures + * trigger an assert(). + * + * Parameters : + * 1 : str = String to duplicate + * + * Returns : Pointer to newly strdup'd copy of the string. + * + *********************************************************************/ +char *strdup_or_die(const char *str) +{ + char *new_str; + + new_str = strdup(str); + + if (new_str == NULL) + { + assert(new_str != NULL); + log_error(LOG_LEVEL_FATAL, "Out of memory in strdup_or_die()."); + exit(1); + } + + return(new_str); + +} + + #if defined(unix) /********************************************************************* *