- ret = read_uncompressed_resource(fp, res_entry->offset,
- res_entry->size, (void*)table);
-
- if (ret != 0) {
- ERROR("Failed to read integrity table (size = %u, "
- " offset = %"PRIu64")",
- (unsigned)res_entry->size, res_entry->offset);
- goto out;
- }
-
- table->size = le32_to_cpu(table->size);
- table->num_entries = le32_to_cpu(table->num_entries);
- table->chunk_size = le32_to_cpu(table->chunk_size);
-
- if (table->size != res_entry->size) {
- ERROR("Inconsistent integrity table sizes: Table header says "
- "%u bytes but resource entry says %u bytes",
- table->size, (unsigned)res_entry->size);
- ret = WIMLIB_ERR_INVALID_INTEGRITY_TABLE;
- goto out;
- }
-
- DEBUG("table->size = %u, table->num_entries = %u, "
- "table->chunk_size = %u",
- table->size, table->num_entries, table->chunk_size);
-
- expected_size = (u64)table->num_entries * SHA1_HASH_SIZE + 12;