6 char *string_duplicate(const char *str,
9 if (str_end != NULL && str > str_end) {
13 const size_t n = str_end == NULL ? strlen(str) : (size_t) (str_end - str);
14 char *dup_str = malloc(sizeof(char) * (n + 1));
15 if (dup_str == NULL) {
19 memcpy(dup_str, str, n);