Add spice_strndup

Also, make str(n)dup handle NULL correctly
This commit is contained in:
Alexander Larsson 2010-03-24 17:02:20 +01:00
parent 4a36b98440
commit ce0d8a094c
2 changed files with 19 additions and 0 deletions

View File

@ -32,11 +32,29 @@ char *spice_strdup(const char *str)
{
char *copy;
if (str == NULL) {
return NULL;
}
copy = (char *)spice_malloc(strlen(str) + 1);
strcpy(copy, str);
return copy;
}
char *spice_strndup(const char *str, size_t n_bytes)
{
char *copy;
if (str == NULL) {
return NULL;
}
copy = (char *)spice_malloc(n_bytes + 1);
strncpy(copy, str, n_bytes);
copy[n_bytes] = 0;
return copy;
}
void *spice_memdup(const void *mem, size_t n_bytes)
{
void *copy;

View File

@ -23,6 +23,7 @@
#include <spice/macros.h>
char *spice_strdup(const char *str) SPICE_GNUC_MALLOC;
char *spice_strndup(const char *str, size_t n_bytes) SPICE_GNUC_MALLOC;
void *spice_memdup(const void *mem, size_t n_bytes) SPICE_GNUC_MALLOC;
void *spice_malloc(size_t n_bytes) SPICE_GNUC_MALLOC SPICE_GNUC_ALLOC_SIZE(1);
void *spice_malloc0(size_t n_bytes) SPICE_GNUC_MALLOC SPICE_GNUC_ALLOC_SIZE(1);