@@ -39,7 +39,7 @@ buffer_new_with_size(size_t n) {
39
39
buffer_t * self = malloc (sizeof (buffer_t ));
40
40
if (!self ) return NULL ;
41
41
self -> len = n ;
42
- self -> data = self -> alloc = calloc (n , 1 );
42
+ self -> data = self -> alloc = calloc (n + 1 , 1 );
43
43
return self ;
44
44
}
45
45
@@ -88,7 +88,7 @@ ssize_t
88
88
buffer_compact (buffer_t * self ) {
89
89
size_t len = buffer_length (self );
90
90
size_t rem = self -> len - len ;
91
- char * buf = calloc (len , 1 );
91
+ char * buf = calloc (len + 1 , 1 );
92
92
if (!buf ) return -1 ;
93
93
memcpy (buf , self -> data , len );
94
94
free (self -> alloc );
133
133
buffer_resize (buffer_t * self , size_t n ) {
134
134
n = nearest_multiple_of (1024 , n );
135
135
self -> len = n ;
136
- self -> alloc = self -> data = realloc (self -> alloc , n );
137
- return self -> alloc ? 0 : -1 ;
136
+ self -> alloc = self -> data = realloc (self -> alloc , n + 1 );
137
+ if (!self -> alloc ) return -1 ;
138
+ self -> alloc [n ] = '\0' ;
139
+ return 0 ;
138
140
}
139
141
140
142
/*
@@ -205,7 +207,7 @@ buffer_slice(buffer_t *buf, size_t from, ssize_t to) {
205
207
if (to > len ) to = len ;
206
208
207
209
size_t n = to - from ;
208
- buffer_t * self = buffer_new_with_size (n + 1 );
210
+ buffer_t * self = buffer_new_with_size (n );
209
211
memcpy (self -> data , buf -> data + from , n );
210
212
return self ;
211
213
}
0 commit comments