X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fblob_table.c;fp=src%2Fblob_table.c;h=4ec6cd931b9fc899367118fa040f55c8b134ee6b;hp=08859c42787baa5147a398bdacdecae579f69275;hb=1e8c8e5e43f2c34c0f692b444e0ad06825b8a3dd;hpb=96c0ef4c9c596b48c4388f5c7a1979531b64cc6d diff --git a/src/blob_table.c b/src/blob_table.c index 08859c42..4ec6cd93 100644 --- a/src/blob_table.c +++ b/src/blob_table.c @@ -953,27 +953,13 @@ read_blob_table(WIMStruct *wim) goto out; } - /* How to handle an uncompressed resource with its - * uncompressed size different from its compressed size? - * - * Based on a simple test, WIMGAPI seems to handle this - * as follows: - * - * if (size_in_wim > uncompressed_size) { - * Ignore uncompressed_size; use size_in_wim - * instead. - * } else { - * Honor uncompressed_size, but treat the part of - * the file data above size_in_wim as all zeros. - * } - * - * So we will do the same. */ - if (unlikely(!(reshdr.flags & - WIM_RESHDR_FLAG_COMPRESSED) && - (reshdr.size_in_wim > - reshdr.uncompressed_size))) + if (unlikely(!(reshdr.flags & WIM_RESHDR_FLAG_COMPRESSED) && + (reshdr.size_in_wim != reshdr.uncompressed_size))) { - reshdr.uncompressed_size = reshdr.size_in_wim; + ERROR("Uncompressed resource has " + "size_in_wim != uncompressed_size"); + ret = WIMLIB_ERR_INVALID_LOOKUP_TABLE_ENTRY; + goto out; } /* Set up a resource descriptor for this blob. */