Following the chunk-count bytes, the following bytes are added for each chunk:
-1. 2 bytes that are a 16-bit unsigned integer "file count" in big-endian.
+1. 4 bytes that are a 32-bit unsigned integer "file count" in big-endian.
The following bytes are added for each file within the current chunk:
for (uint32_t chunk_idx = 0; chunk_idx < chunk_count; ++chunk_idx) {
fprintf(stderr, "CHUNK %3u of %3u\n", chunk_idx + 1, chunk_count);
- if (fread(buf, 1, 2, in_f) != 2) {
+ if (fread(buf, 1, 4, in_f) != 4) {
return SDAS_INVALID_FILE;
}
- memcpy(&u16, buf, 2);
- simple_archiver_helper_16_bit_be(&u16);
+ memcpy(&u32, buf, 4);
+ simple_archiver_helper_32_bit_be(&u32);
- const uint16_t file_count = u16;
+ const uint32_t file_count = u32;
__attribute__((cleanup(simple_archiver_list_free)))
SDArchiverLinkedList *file_info_list = simple_archiver_list_init();
__attribute__((cleanup(cleanup_internal_file_info)))
SDArchiverInternalFileInfo *file_info = NULL;
- for (uint16_t file_idx = 0; file_idx < file_count; ++file_idx) {
+ for (uint32_t file_idx = 0; file_idx < file_count; ++file_idx) {
file_info = malloc(sizeof(SDArchiverInternalFileInfo));
memset(file_info, 0, sizeof(SDArchiverInternalFileInfo));