aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2018-10-27 12:19:50 +0200
committerMattias Andrée <maandree@kth.se>2018-10-27 12:21:23 +0200
commit7de3ced850b04b3aac8260c8fe731c2980417928 (patch)
tree53ff6cdeb7348835e67881f60927f47337c01161
parentRemove strndup, it is in POSIX (diff)
downloadlibsimple-7de3ced850b04b3aac8260c8fe731c2980417928.tar.gz
libsimple-7de3ced850b04b3aac8260c8fe731c2980417928.tar.bz2
libsimple-7de3ced850b04b3aac8260c8fe731c2980417928.tar.xz
memdup, aligned_memdup: allocate with size 1 if n is 0
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to '')
-rw-r--r--aligned_memdup.c4
-rw-r--r--memdup.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/aligned_memdup.c b/aligned_memdup.c
index 2dbba7b..d66a846 100644
--- a/aligned_memdup.c
+++ b/aligned_memdup.c
@@ -6,7 +6,9 @@
void *
libsimple_aligned_memdup(const void *s, size_t alignment, size_t n)
{
- void *ret = aligned_alloc(alignment, n + (alignment - n % alignment) % alignment);
+ void *ret;
+ n = n ? n : 1;
+ ret = aligned_alloc(alignment, n + (alignment - n % alignment) % alignment);
if (!ret)
return NULL;
return memcpy(ret, s, n);
diff --git a/memdup.c b/memdup.c
index 9c681e2..a1d0959 100644
--- a/memdup.c
+++ b/memdup.c
@@ -6,7 +6,7 @@
void *
libsimple_memdup(const void *s, size_t n)
{
- void *ret = malloc(n);
+ void *ret = malloc(n ? n : (size_t)1);
if (!ret)
return NULL;
return memcpy(ret, s, n);