X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=miscutil.c;h=619ff5b50c67ff562db2ffe4210bc14d45260ea0;hp=b45490e4098e3f0f7cee2355f788a18387c0045b;hb=3d2d6a157f8b301b27c95d57a74ccf3d9bfa870c;hpb=bd8acf91e69788e2f13c8f34fda0b8039067b83a diff --git a/miscutil.c b/miscutil.c index b45490e4..619ff5b5 100644 --- a/miscutil.c +++ b/miscutil.c @@ -1,4 +1,4 @@ -const char miscutil_rcs[] = "$Id: miscutil.c,v 1.69 2012/03/04 11:41:57 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) /********************************************************************* * @@ -177,13 +213,13 @@ int strcmpic(const char *s1, const char *s2) while (*s1 && *s2) { - if ( ( *s1 != *s2 ) && ( ijb_tolower(*s1) != ijb_tolower(*s2) ) ) + if ( ( *s1 != *s2 ) && ( privoxy_tolower(*s1) != privoxy_tolower(*s2) ) ) { break; } s1++, s2++; } - return(ijb_tolower(*s1) - ijb_tolower(*s2)); + return(privoxy_tolower(*s1) - privoxy_tolower(*s2)); } @@ -210,7 +246,7 @@ int strncmpic(const char *s1, const char *s2, size_t n) while (*s1 && *s2) { - if ( ( *s1 != *s2 ) && ( ijb_tolower(*s1) != ijb_tolower(*s2) ) ) + if ( ( *s1 != *s2 ) && ( privoxy_tolower(*s1) != privoxy_tolower(*s2) ) ) { break; } @@ -219,7 +255,7 @@ int strncmpic(const char *s1, const char *s2, size_t n) s1++, s2++; } - return(ijb_tolower(*s1) - ijb_tolower(*s2)); + return(privoxy_tolower(*s1) - privoxy_tolower(*s2)); } @@ -245,7 +281,7 @@ char *chomp(char *string) * strip trailing whitespace */ p = string + strlen(string); - while (p > string && ijb_isspace(*(p-1))) + while (p > string && privoxy_isspace(*(p-1))) { p--; } @@ -255,7 +291,7 @@ char *chomp(char *string) * find end of leading whitespace */ q = r = string; - while (*q && ijb_isspace(*q)) + while (*q && privoxy_isspace(*q)) { q++; } @@ -470,13 +506,10 @@ char *bindup(const char *string, size_t len) { char *duplicate; - if (NULL == (duplicate = (char *)malloc(len))) - { - return NULL; - } - else + duplicate = (char *)malloc(len); + if (NULL != duplicate) { - memcpy(duplicate, string, len); + memcpy(duplicate, string, len); } return duplicate;