aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/buffer.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 205aa333..89fd0f6d 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -145,9 +145,11 @@ static int realloc_buffer(struct ssh_buffer_struct *buffer, size_t needed) {
if (new == NULL) {
return -1;
}
- memcpy(new, buffer->data,buffer->used);
- explicit_bzero(buffer->data, buffer->used);
- SAFE_FREE(buffer->data);
+ if (buffer->used > 0) {
+ memcpy(new, buffer->data,buffer->used);
+ explicit_bzero(buffer->data, buffer->used);
+ SAFE_FREE(buffer->data);
+ }
} else {
new = realloc(buffer->data, needed);
if (new == NULL) {