* mutt_str_strdup - Copy a string, safely
* @param str String to copy
* @retval ptr Copy of the string
- * @retval NULL if str was NULL
+ * @retval NULL if str was NULL or empty
*/
char *mutt_str_strdup(const char *str)
{
if (!str || !*str)
return NULL;
- const size_t len = strlen(str) + 1;
- char *copy = mutt_mem_malloc(len);
- memcpy(copy, str, len);
- return copy;
+ return strdup(str);
}
/**
}
{
- char *ptr = NULL;
- TEST_CHECK(mutt_str_strdup(ptr) == NULL);
+ TEST_CHECK(mutt_str_strdup("") == NULL);
+ }
+
+ {
+ char *str = "apple";
+ char *result = mutt_str_strdup(str);
+ TEST_CHECK(result != NULL);
+ TEST_CHECK(result != str);
+ TEST_CHECK(strcmp(result, str) == 0);
+ FREE(&result);
}
}
+