Skip to content

Commit 1f40bca

Browse files
author
Cédric Deltheil
committed
Make it safe to always use data as a character string
1 parent c0804a1 commit 1f40bca

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

buffer.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ buffer_new_with_size(size_t n) {
3939
buffer_t *self = malloc(sizeof(buffer_t));
4040
if (!self) return NULL;
4141
self->len = n;
42-
self->data = self->alloc = calloc(n, 1);
42+
self->data = self->alloc = calloc(n + 1, 1);
4343
return self;
4444
}
4545

@@ -88,7 +88,7 @@ ssize_t
8888
buffer_compact(buffer_t *self) {
8989
size_t len = buffer_length(self);
9090
size_t rem = self->len - len;
91-
char *buf = calloc(len, 1);
91+
char *buf = calloc(len + 1, 1);
9292
if (!buf) return -1;
9393
memcpy(buf, self->data, len);
9494
free(self->alloc);
@@ -133,7 +133,7 @@ int
133133
buffer_resize(buffer_t *self, size_t n) {
134134
n = nearest_multiple_of(1024, n);
135135
self->len = n;
136-
self->alloc = self->data = realloc(self->alloc, n);
136+
self->alloc = self->data = realloc(self->alloc, n + 1);
137137
return self->alloc ? 0 : -1;
138138
}
139139

@@ -205,7 +205,7 @@ buffer_slice(buffer_t *buf, size_t from, ssize_t to) {
205205
if (to > len) to = len;
206206

207207
size_t n = to - from;
208-
buffer_t *self = buffer_new_with_size(n + 1);
208+
buffer_t *self = buffer_new_with_size(n);
209209
memcpy(self->data, buf->data + from, n);
210210
return self;
211211
}

0 commit comments

Comments
 (0)