diff --git a/libpcp/buffer.c b/libpcp/buffer.c index f051f5b..3b897db 100644 --- a/libpcp/buffer.c +++ b/libpcp/buffer.c @@ -48,7 +48,8 @@ Buffer *buffer_new_str(char *name) { } Buffer *buffer_new_buf(char *name, void *data, size_t datasize) { - Buffer *b = buffer_new(256, name); + Buffer *b = ucmalloc(sizeof(Buffer)); + buffer_init(b, 256, name); b->allocated = 0; b->buf = data; b->size = datasize; @@ -66,6 +67,7 @@ void buffer_free(Buffer *b) { free(b->buf); b->allocated = 0; } + free(b->name); free(b); } } diff --git a/tests/buffertest.c b/tests/buffertest.c index 89cfcf1..f3cecb0 100644 --- a/tests/buffertest.c +++ b/tests/buffertest.c @@ -45,7 +45,7 @@ int main() { fprintf(stderr, "\n"); } - buffer_extract(test, g, 28, 38); + buffer_extract(test, g, 28, 10); _dump("extracted", g, 10); uint8_t c = buffer_last8(test); @@ -87,6 +87,7 @@ int main() { } buffer_free(rb); + free(chunk); _dump("r", r, rs); /* should work! */ @@ -94,6 +95,7 @@ int main() { fclose(RFD); fatals_ifany(ptx); + ptx_clean(ptx); return 0; }