if (source == NULL)
return NULL;
- ptr = calloc(size + 1, sizeof(char));
- if (ptr == NULL)
- return NULL;
+ if (need_convert) {
+ ptr = calloc(size + 1, sizeof(char));
+ if (ptr == NULL)
+ return NULL;
- if (need_convert) {
opt = packdigit((unsigned char*)source);
if (opt == NULL) {
free(ptr);
free(opt);
}
} else {
- strlcpy(ptr, source, size + 1);
+ ptr = strdup(source);
}
return ptr;