]> wimlib.net Git - wimlib/commit
Rewrite code for capture rpfix
authorEric Biggers <ebiggers3@gmail.com>
Fri, 16 May 2014 01:13:34 +0000 (20:13 -0500)
committerEric Biggers <ebiggers3@gmail.com>
Fri, 16 May 2014 01:23:44 +0000 (20:23 -0500)
commitb0948f133903373626d74324a9693a47b7a48feb
treeb2e9b4570a47e585032aaa1a52a064200f4b94e7
parentcd31971d325d4757dbd72064939ab9d43acd5e96
Rewrite code for capture rpfix

The previous code had many potential problems on the Windows side.
Targets of Windows native symbolic links (except those with
SYMBOLIC_LINK_RELATIVE set) and junction points are stored in the reparse
points as NT namespace paths.  Therefore they can validly include
prefixes like '\??\', '\DosDevices\', or '\Device\HardDiskVolume1'.  They
potentially do not use drive letters at all, and they may be over
MAX_PATH characters.  Such paths should be accessed using the native API
(NtOpenFile), not Win32 (CreateFile).  This commit changes the code to do
so.
include/wimlib/reparse.h
include/wimlib/win32.h
src/reparse.c
src/unix_capture.c
src/win32_capture.c
src/win32_replacements.c