From 480fd72fc285fc4f42a7618147cce646ba337ebe Mon Sep 17 00:00:00 2001 From: Jonathan Beck Date: Sun, 15 Feb 2009 17:34:07 +0100 Subject: Do not write 3 byte integer nodes. Use standard 4bytes integer instead. --- src/bplist.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bplist.c b/src/bplist.c index cf9b9c6..1ab3ab8 100644 --- a/src/bplist.c +++ b/src/bplist.c @@ -589,7 +589,11 @@ static gboolean free_index(gpointer key, gpointer value, gpointer user_data) static void write_int(GByteArray * bplist, uint64_t val) { uint64_t size = get_needed_bytes(val); - uint8_t *buff = (uint8_t *) malloc(sizeof(uint8_t) + size); + uint8_t *buff = NULL; + //do not write 3bytes int node + if (size == 3) + size++; + buff = (uint8_t *) malloc(sizeof(uint8_t) + size); buff[0] = BPLIST_UINT | Log2(size); memcpy(buff + 1, &val, size); byte_convert(buff + 1, size); -- cgit v1.1-32-gdbae