Add ADS entry workaround
authorEric Biggers <ebiggers3@gmail.com>
Wed, 13 Nov 2013 02:48:43 +0000 (20:48 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Wed, 13 Nov 2013 03:04:27 +0000 (21:04 -0600)
commit69a6de2b04308332d9e5e8bc61f34e4b9460c12f
tree05903d59b4a22b11bc1bff4da5c147f53c8f8f9d
parent8f071f84246b394d261ce028b87fbedf4c579c6e
Add ADS entry workaround

Some versions of Microsoft's WIM software (the boot driver(s) in WinPE
3.0, for example) contain a bug where they assume the first alternate
data stream (ADS) entry of a dentry with a nonzero ADS count specifies
the unnamed stream, even if it has a name and the unnamed stream is
already specified in the hash field of the dentry itself.

wimlib now works around this behavior by carefully emulating the behavior
of (most versions of) ImageX/WIMGAPI, which move the unnamed stream
reference into the alternate stream entries whenever there are named data
streams, even though there is already a field in the dentry itself for
the unnamed stream reference, which then goes to waste.
include/wimlib/dentry.h
include/wimlib/sha1.h
src/dentry.c
src/lookup_table.c
src/metadata_resource.c
src/mount_image.c
src/paths.c