From 6d2334754eca27f6f8244a458c47bfc86b778d75 Mon Sep 17 00:00:00 2001 From: Magnus Ahltorp Date: Fri, 18 Nov 2016 15:25:18 +0100 Subject: Make calc_padding handle 64 bit offsets correctly --- c_src/permdb.c | 4 ++-- c_src/util.c | 6 +++--- c_src/util.h | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/c_src/permdb.c b/c_src/permdb.c index ec540a5..96dc405 100644 --- a/c_src/permdb.c +++ b/c_src/permdb.c @@ -338,7 +338,7 @@ read_data_commit(buffered_file *file, node_offset *offset) struct commit_info * read_data_commit_forward(buffered_file *file, node_offset *offset) { - int padding = calc_padding(*offset, 4); + uint64_t padding = calc_padding(*offset, 4); *offset += sizeof(data_commit_start_cookie) + padding; return read_data_commit(file, offset); } @@ -1105,7 +1105,7 @@ committree(permdb_object *state) dprintf(WRITE, (stderr, "writing data commit trailer at offset %llu\n", (unsigned long long) bf_total_length(state->datafile))); - int data_commit_padding_size = + uint64_t data_commit_padding_size = calc_padding(bf_total_length(state->datafile), 4); uint8_t padding[4] = {0, 0, 0, 0}; unsigned char data_commit_checksum[SHA256_DIGEST_SIZE]; diff --git a/c_src/util.c b/c_src/util.c index 05adcd7..bba051f 100644 --- a/c_src/util.c +++ b/c_src/util.c @@ -44,10 +44,10 @@ set_error(char **error, const char *format, ...) va_end(args); } -int -calc_padding(int offset, int alignment) +uint64_t +calc_padding(uint64_t offset, uint64_t alignment) { - int misalign = offset % alignment; + uint64_t misalign = offset % alignment; if (misalign == 0) { return 0; diff --git a/c_src/util.h b/c_src/util.h index aec4512..30e7a64 100644 --- a/c_src/util.h +++ b/c_src/util.h @@ -28,8 +28,8 @@ void set_error(char **error, const char * __restrict, ...) __attribute__ ((__format__ (__printf__, 2, 3))); -int -calc_padding(int offset, int alignment); +uint64_t +calc_padding(uint64_t offset, uint64_t alignment); void print_entry(node_object node); -- cgit v1.1