diff options
author | Jonathan Beck | 2009-01-08 23:44:30 +0100 |
---|---|---|
committer | Jonathan Beck | 2009-01-08 23:44:30 +0100 |
commit | ed5f0b7154a5f653c240e6962098ae7b28ab61e5 (patch) | |
tree | 0e268239ebb9edf0996596b0262dac95940f91dd | |
parent | e0b6a20b79e1a438125c72a3335713af01619ea9 (diff) | |
download | libplist-ed5f0b7154a5f653c240e6962098ae7b28ab61e5.tar.gz libplist-ed5f0b7154a5f653c240e6962098ae7b28ab61e5.tar.bz2 |
fix offset writing and add experimental padding to mimic Apple files.
-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 746c13e..fd0280c 100644 --- a/src/bplist.c +++ b/src/bplist.c @@ -808,7 +808,7 @@ void plist_to_bin(plist_t plist, char **plist_bin, uint32_t * length) //write offsets offset_size = get_needed_bytes(bplist_buff->len); offset_table_index = bplist_buff->len; - for (i = 0; i <= num_objects; i++) { + for (i = 0; i < num_objects; i++) { uint8_t *offsetbuff = (uint8_t *) malloc(offset_size); memcpy(offsetbuff, offsets + i, offset_size); byte_convert(offsetbuff, offset_size); @@ -816,6 +816,10 @@ void plist_to_bin(plist_t plist, char **plist_bin, uint32_t * length) free(offsetbuff); } + //experimental pad to reflect apple's files + uint8_t pad[6] = {0, 0, 0, 0, 0, 0}; + g_byte_array_append(bplist_buff, pad, 6); + //setup trailer num_objects = GUINT64_FROM_BE(num_objects); root_object = GUINT64_FROM_BE(root_object); |