--- source/lib/util_str.c.orig Sat Dec 20 01:02:29 2003 +++ source/lib/util_str.c Sat Dec 20 01:25:33 2003 @@ -1873,7 +1873,12 @@ size_t out_cnt = 0; size_t len = data.length; size_t output_len = data.length * 2; - char *result = malloc(output_len); /* get us plenty of space */ + char *result; + + if (len == 0) + return NULL; + + result = (char *) malloc(output_len); /* get us plenty of space */ while (len-- && out_cnt < (data.length * 2) - 5) { int c = (unsigned char) *(data.data++);