diff --git a/gobuffer.c b/gobuffer.c index f8d2066..1ea823b 100644 --- a/gobuffer.c +++ b/gobuffer.c @@ -91,7 +91,12 @@ int gobuffer__add(struct gobuffer *gb, const void *s, unsigned int len) void gobuffer__copy(const struct gobuffer *gb, void *dest) { - memcpy(dest, gb->entries, gobuffer__size(gb)); + if (gb->entries) { + memcpy(dest, gb->entries, gobuffer__size(gb)); + } else { + /* gobuffer__size will be 0 or 1. */ + memcpy(dest, "", gobuffer__size(gb)); + } } const void *gobuffer__compress(struct gobuffer *gb, unsigned int *size) @@ -101,7 +106,7 @@ const void *gobuffer__compress(struct gobuffer *gb, unsigned int *size) .zfree = Z_NULL, .opaque = Z_NULL, .avail_in = gobuffer__size(gb), - .next_in = (Bytef *)gobuffer__entries(gb), + .next_in = (Bytef *)(gobuffer__entries(gb) ? : ""), }; void *bf = NULL; unsigned int bf_size = 0;