summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Ahltorp <map@kth.se>2016-02-12 17:40:34 +0100
committerMagnus Ahltorp <map@kth.se>2016-02-12 17:40:34 +0100
commit41ffff7d7e4f1eab8a1b3d4ade125a090dcaaa51 (patch)
treeb04cbf671476f5e55ee733c6a8cf469570d14063
parent3c3c4cbb47394f671ac890da95d91d68878d9bbb (diff)
Free some more memorynew-permdb
-rw-r--r--c_src/filebuffer.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/c_src/filebuffer.c b/c_src/filebuffer.c
index c6068e8..4ba3501 100644
--- a/c_src/filebuffer.c
+++ b/c_src/filebuffer.c
@@ -150,12 +150,14 @@ bf_read(buffered_file *file, uint64_t offset, size_t length, char **error)
if (offset >= file->filesize) {
uint64_t writebufferoffset = offset - file->filesize;
if (offset + length > file->datasize) {
+ free(result);
set_error(error, "pread: not enough data for offset %llu and length %zu\n", (long long unsigned int) offset, length);
return NULL;
}
memcpy(result, file->writebuffer + writebufferoffset, length);
} else {
if (offset + length > file->filesize) {
+ free(result);
set_error(error, "pread: trying to read over file/writebuffer boundary for offset %llu and length %zu\n", (long long unsigned int) offset, length);
return NULL;
}