Mercurial > nomad
changeset 798:68939d7b83f8
objstore: assert that dirblock_serialize produced at most one block of data
We don't care how much data was written to the buffer before we got it.
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Thu, 02 Apr 2020 21:02:22 -0400 |
parents | cdab6866a016 |
children | 4b569a84039a |
files | src/objstore/dirblock.c |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/objstore/dirblock.c Thu Apr 02 20:59:43 2020 -0400 +++ b/src/objstore/dirblock.c Thu Apr 02 21:02:22 2020 -0400 @@ -137,6 +137,7 @@ int dirblock_serialize(struct dirblock *block, struct buffer *buf) { + const size_t old_size = buffer_size(buf); struct obj_dir_header hdr; size_t off; size_t i, j; @@ -209,9 +210,9 @@ } } - ASSERT3U(buffer_size(buf), <=, DIR_BLOCK_SIZE); + ASSERT3U(buffer_size(buf) - old_size, <=, DIR_BLOCK_SIZE); - return buffer_truncate(buf, DIR_BLOCK_SIZE); + return buffer_truncate(buf, old_size + DIR_BLOCK_SIZE); } static ssize_t __find_dirent(struct dirblock *block, const char *name)