1
Vote

Cannot read .WIM files that were created with Windows' .WIM SDK without ACLs

description

Cannot read .WIM files that were created with Windows' .WIM SDK without ACLs

The Windows' WIM SDK contains an apparent bug when creating .WIM files without ACLs (security descriptors). If the list of security descriptors for a .WIM index is empty, the SDK will set the dwTotalLength member of the SECURITYBLOCK_DISK struct to zero. Since dwTotalLength is supposed to be the total size of the block, and the block always consists of at least two DWORDs (dwTotalLength and dwNumEntries), the correct dwTotalLength value for an empty list would be 8 however.

DiscUtils currently doesn't contain a workaround for this issue, and because of that will try to read the root directory from the wrong location, seeing an empty root directory.

Microsofts own tools (DISM, ...) can process such .WIM indexes without a problem. Also 7Zip v15.14 can read such indexes.

Since the WIM SDK is "the" SDK for .WIM files, DiscUtils should also be able to read such .WIM indexes.

comments