diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bplist.c | 6 | 
1 files changed, 5 insertions, 1 deletions
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);  | 
