wimlib
5 years agoxml.c: Fix writing XML data for one image only
Eric Biggers [Sat, 2 May 2015 20:07:50 +0000 (15:07 -0500)]
xml.c: Fix writing XML data for one image only

5 years agowimlib_print_header(): fix printing of magic number
Eric Biggers [Sat, 2 May 2015 20:52:43 +0000 (15:52 -0500)]
wimlib_print_header(): fix printing of magic number

5 years agosha1.h: remove unused inline functions
Eric Biggers [Sat, 2 May 2015 20:40:58 +0000 (15:40 -0500)]
sha1.h: remove unused inline functions

5 years agowim.c: adjust wimlib_compression_type casting
Eric Biggers [Sat, 2 May 2015 19:57:56 +0000 (14:57 -0500)]
wim.c: adjust wimlib_compression_type casting

5 years agoWin32 capture: sort streams by starting LCN
Eric Biggers [Sat, 2 May 2015 18:39:17 +0000 (13:39 -0500)]
Win32 capture: sort streams by starting LCN

5 years agoNTFS-3g capture: use reference-counted NTFS volumes
Eric Biggers [Sat, 2 May 2015 16:35:59 +0000 (11:35 -0500)]
NTFS-3g capture: use reference-counted NTFS volumes

This avoids the hack of storing the NTFS volume in
'struct wim_image_metadata'.

5 years agoNTFS-3g capture: sort attributes by starting LCN
Eric Biggers [Sat, 2 May 2015 15:41:47 +0000 (10:41 -0500)]
NTFS-3g capture: sort attributes by starting LCN

5 years agoNTFS-3g capture: open inodes by inode number
Eric Biggers [Sat, 2 May 2015 15:11:43 +0000 (10:11 -0500)]
NTFS-3g capture: open inodes by inode number

5 years agowim_inode: Remove i_list, leaving only i_hlist
Eric Biggers [Sat, 2 May 2015 02:51:40 +0000 (21:51 -0500)]
wim_inode: Remove i_list, leaving only i_hlist

5 years agoVarious cleanups
Eric Biggers [Fri, 1 May 2015 02:26:32 +0000 (21:26 -0500)]
Various cleanups

5 years agoNew helper: inode_get_unnamed_data_stream()
Eric Biggers [Fri, 1 May 2015 03:53:05 +0000 (22:53 -0500)]
New helper: inode_get_unnamed_data_stream()

5 years agomount_image.c: set st_blocks to compressed size
Eric Biggers [Fri, 1 May 2015 03:45:49 +0000 (22:45 -0500)]
mount_image.c: set st_blocks to compressed size

5 years agoxml.c: Simplify image statistics calculation
Eric Biggers [Fri, 1 May 2015 03:15:05 +0000 (22:15 -0500)]
xml.c: Simplify image statistics calculation

5 years agoUse -D_POSIX_THREAD_SAFE_FUNCTIONS for MinGW build
Eric Biggers [Fri, 1 May 2015 00:38:21 +0000 (19:38 -0500)]
Use -D_POSIX_THREAD_SAFE_FUNCTIONS for MinGW build

The latest MinGW only exposes gmtime_r() if this is defined.

5 years agowimlib_global_init(): check for conflicting case sensitivity mode
Eric Biggers [Tue, 28 Apr 2015 01:54:54 +0000 (20:54 -0500)]
wimlib_global_init(): check for conflicting case sensitivity mode

5 years agoClean up setting of compression type
Eric Biggers [Sat, 25 Apr 2015 20:00:07 +0000 (15:00 -0500)]
Clean up setting of compression type

- Use the enum instead of an int
- Consolidate the per-compression-type information into an array

5 years agowimlib.h: various documentation cleanups and improvements
Eric Biggers [Sat, 25 Apr 2015 00:22:48 +0000 (19:22 -0500)]
wimlib.h: various documentation cleanups and improvements

5 years agontfs-3g_apply.c: use WIMLIB_ERR_SET_REPARSE_DATA
Eric Biggers [Sat, 25 Apr 2015 16:51:03 +0000 (11:51 -0500)]
ntfs-3g_apply.c: use WIMLIB_ERR_SET_REPARSE_DATA

5 years agowimlib_create_new_wim(): check for NULL wim_ret
Eric Biggers [Sat, 25 Apr 2015 15:44:53 +0000 (10:44 -0500)]
wimlib_create_new_wim(): check for NULL wim_ret

5 years agowimlib_get_xml_data(): should use NO_FILENAME error
Eric Biggers [Sat, 25 Apr 2015 06:13:08 +0000 (01:13 -0500)]
wimlib_get_xml_data(): should use NO_FILENAME error

5 years agoSerialize wimlib_global_init() and wimlib_global_cleanup()
Eric Biggers [Sat, 25 Apr 2015 05:09:35 +0000 (00:09 -0500)]
Serialize wimlib_global_init() and wimlib_global_cleanup()

5 years agowimlib_iterate_lookup_table(): include unhashed blobs
Eric Biggers [Sat, 25 Apr 2015 04:56:39 +0000 (23:56 -0500)]
wimlib_iterate_lookup_table(): include unhashed blobs

5 years agoRemove unnecessary argument to hlist iteration macros
Eric Biggers [Sat, 11 Apr 2015 14:38:58 +0000 (09:38 -0500)]
Remove unnecessary argument to hlist iteration macros

5 years agoRemove --enable-verify-compression option
Eric Biggers [Sat, 11 Apr 2015 13:55:27 +0000 (08:55 -0500)]
Remove --enable-verify-compression option

It is easy to do manual verification with 'wimverify', and this was
already broken since "destructive" compression was introduced.

5 years agov1.8.1-BETA
Eric Biggers [Sat, 4 Apr 2015 04:52:24 +0000 (23:52 -0500)]
v1.8.1-BETA

5 years agowin32_capture.c: fix capture of unnamed stream only
Eric Biggers [Sat, 4 Apr 2015 04:52:08 +0000 (23:52 -0500)]
win32_capture.c: fix capture of unnamed stream only

5 years agoinode/blob cleanups
Eric Biggers [Thu, 2 Apr 2015 02:46:38 +0000 (21:46 -0500)]
inode/blob cleanups

5 years agoImprove helper functions for setting blob locations
Eric Biggers [Thu, 2 Apr 2015 04:43:54 +0000 (23:43 -0500)]
Improve helper functions for setting blob locations

5 years agoOptimize layout of 'struct blob_descriptor'
Eric Biggers [Thu, 2 Apr 2015 02:13:13 +0000 (21:13 -0500)]
Optimize layout of 'struct blob_descriptor'

5 years agoTrim down 'flags' member of 'struct blob_descriptor'
Eric Biggers [Thu, 2 Apr 2015 01:43:36 +0000 (20:43 -0500)]
Trim down 'flags' member of 'struct blob_descriptor'

Most "blob" flags were actually only meaningful for WIM resources.
Resource flags are actually saved in the 'flags' member of 'struct
wim_resource_descriptor', and we don't need to duplicate them in 'struct
blob_descriptor'.

5 years agowin32_apply.c: simplify inode_longest_named_data_stream_spec()
Eric Biggers [Sun, 29 Mar 2015 23:32:11 +0000 (18:32 -0500)]
win32_apply.c: simplify inode_longest_named_data_stream_spec()

5 years agolzx_decompress.c: add missing validation in RLE length decoding
Eric Biggers [Fri, 27 Mar 2015 05:16:58 +0000 (00:16 -0500)]
lzx_decompress.c: add missing validation in RLE length decoding

Bad input found by afl-fuzz:

1f 20 00 42 00 00 33 03 45 43 45 00 20 00 00 0e

5 years agontfs-3g_capture.c: fix capture of empty named data stream
Eric Biggers [Fri, 27 Mar 2015 02:00:48 +0000 (21:00 -0500)]
ntfs-3g_capture.c: fix capture of empty named data stream

5 years agotest-imagex-ntfs: fix empty xattr creation
Eric Biggers [Fri, 27 Mar 2015 01:54:53 +0000 (20:54 -0500)]
test-imagex-ntfs: fix empty xattr creation

5 years agotest-imagex-ntfs: remove unusable DOS name tests
Eric Biggers [Fri, 27 Mar 2015 01:54:22 +0000 (20:54 -0500)]
test-imagex-ntfs: remove unusable DOS name tests

5 years agotests: adjust calling of wimlib-imagex
Eric Biggers [Fri, 27 Mar 2015 00:40:05 +0000 (19:40 -0500)]
tests: adjust calling of wimlib-imagex

5 years agowimlib_iterate_dir_tree(): checksum unhashed blobs
Eric Biggers [Thu, 26 Mar 2015 04:32:29 +0000 (23:32 -0500)]
wimlib_iterate_dir_tree(): checksum unhashed blobs

5 years agoinode.c: fix initialization of i_streams
Eric Biggers [Thu, 26 Mar 2015 04:07:55 +0000 (23:07 -0500)]
inode.c: fix initialization of i_streams

5 years agodetect attr/xattr.h for tree-cmp.c
Eric Biggers [Thu, 26 Mar 2015 04:07:20 +0000 (23:07 -0500)]
detect attr/xattr.h for tree-cmp.c

5 years agontfs-3g_apply.c: avoid warning about sacl_offset unused
Eric Biggers [Thu, 26 Mar 2015 00:58:44 +0000 (19:58 -0500)]
ntfs-3g_apply.c: avoid warning about sacl_offset unused

5 years agoAdjust handling of blob reference counts
Eric Biggers [Wed, 25 Mar 2015 01:08:13 +0000 (20:08 -0500)]
Adjust handling of blob reference counts

5 years agomount_image.c: rename create_dentry() to create_file()
Eric Biggers [Wed, 25 Mar 2015 02:23:42 +0000 (21:23 -0500)]
mount_image.c: rename create_dentry() to create_file()

5 years agoLimit exposure of dentry and inode creation
Eric Biggers [Wed, 25 Mar 2015 01:46:01 +0000 (20:46 -0500)]
Limit exposure of dentry and inode creation

- Don't allow creating d_inode=NULL dentries outside of dentry.c
- Don't allow creating i_nlink=0 inodes

5 years agoblob_table.c: fix NTFS location clone error path
Eric Biggers [Tue, 24 Mar 2015 01:47:38 +0000 (20:47 -0500)]
blob_table.c: fix NTFS location clone error path

5 years agoextract.c: file_name_valid(): fix bad memdup
Eric Biggers [Tue, 24 Mar 2015 00:31:15 +0000 (19:31 -0500)]
extract.c: file_name_valid(): fix bad memdup

5 years agoStream and blob updates
Eric Biggers [Tue, 17 Mar 2015 03:17:15 +0000 (22:17 -0500)]
Stream and blob updates

- Rename "lookup table entry" to "blob descriptor"
- Rename "lookup table" to "blob table"
- Use single array for all an inode's streams
- Explicitly annotate each stream with its type
- Account for fact that EFSRPC raw data includes all data streams
- Other cleanups

5 years agoAdd additional reparse point tests to win32-test-imagex-capture_and_apply.bat
Eric Biggers [Sun, 22 Mar 2015 20:44:31 +0000 (15:44 -0500)]
Add additional reparse point tests to win32-test-imagex-capture_and_apply.bat

5 years agowin32_apply.c: Don't externally back very large files
Eric Biggers [Sun, 15 Mar 2015 01:47:39 +0000 (20:47 -0500)]
win32_apply.c: Don't externally back very large files

5 years agowin32_apply.c: try to clear attributes on existing directories
Eric Biggers [Sun, 15 Mar 2015 01:25:53 +0000 (20:25 -0500)]
win32_apply.c: try to clear attributes on existing directories

5 years agowin32_apply.c: handle target directory more like other directories
Eric Biggers [Sun, 15 Mar 2015 01:22:22 +0000 (20:22 -0500)]
win32_apply.c: handle target directory more like other directories

If we don't send the target directory through the same code path as the
other directories, we can run into several inconsistencies such as empty
named data streams not being created and compression attributes not being
set or cleared.

We actually *can* send the target directory through create_directory() as
long as we don't ask for DELETE access (in case it's the current working
directory) or set its short name (since that doesn't make sense anyway).

5 years agowin32-test-imagex-capture_and_apply improvements
Eric Biggers [Sun, 15 Mar 2015 01:11:13 +0000 (20:11 -0500)]
win32-test-imagex-capture_and_apply improvements

- Make test failure message always get printed if anything goes wrong
- Fix bad file comparison
- Apply the WIM image twice to test the existing files case
- Add test for a readonly directory with a named data stream
- Add test for root directory with empty named data stream

5 years agov1.8.0 v1.8.0
Eric Biggers [Wed, 25 Feb 2015 04:55:41 +0000 (22:55 -0600)]
v1.8.0

5 years agoLZMS compression: a few minor cleanups
Eric Biggers [Wed, 25 Feb 2015 04:44:13 +0000 (22:44 -0600)]
LZMS compression: a few minor cleanups

5 years agoLZMS compression: use position instead of pointer for delta hash
Eric Biggers [Tue, 24 Feb 2015 01:23:44 +0000 (19:23 -0600)]
LZMS compression: use position instead of pointer for delta hash

This gives predictable results regardless of how the buffer is aligned.

5 years agolzms_decompress.c: Make bit decoding function names consistent with compressor
Eric Biggers [Tue, 24 Feb 2015 00:08:17 +0000 (18:08 -0600)]
lzms_decompress.c: Make bit decoding function names consistent with compressor

5 years agolcpit_matchfinder: cleanups and optimizations
Eric Biggers [Tue, 24 Feb 2015 00:08:11 +0000 (18:08 -0600)]
lcpit_matchfinder: cleanups and optimizations

5 years agoA few cleanups and fixes from recent changes
Eric Biggers [Thu, 19 Feb 2015 05:06:40 +0000 (23:06 -0600)]
A few cleanups and fixes from recent changes

5 years agoUpdate README.WINDOWS
Eric Biggers [Wed, 18 Feb 2015 04:13:56 +0000 (22:13 -0600)]
Update README.WINDOWS

5 years agoUpdate Windows test script
Eric Biggers [Wed, 18 Feb 2015 02:42:42 +0000 (20:42 -0600)]
Update Windows test script

5 years agowin32_capture.c: Use CREATE_FOR_DIR flag for encrypted directories
Eric Biggers [Wed, 18 Feb 2015 02:38:23 +0000 (20:38 -0600)]
win32_capture.c: Use CREATE_FOR_DIR flag for encrypted directories

Oddly enough, this is required when reading the EFS data for an encrypted
directory with named data streams, even though MS's documentation
suggests that CREATE_FOR_DIR only has an effect for import.

5 years agoDo not use ADS entry workaround on encrypted files
Eric Biggers [Wed, 18 Feb 2015 02:36:05 +0000 (20:36 -0600)]
Do not use ADS entry workaround on encrypted files

5 years agowimlib-imagex: list --solid in help for more commands
Eric Biggers [Tue, 17 Feb 2015 06:57:36 +0000 (00:57 -0600)]
wimlib-imagex: list --solid in help for more commands

5 years agoVarious cleanups
Eric Biggers [Tue, 17 Feb 2015 03:13:51 +0000 (21:13 -0600)]
Various cleanups

5 years agoFix Makefile.am
Eric Biggers [Mon, 16 Feb 2015 06:26:14 +0000 (00:26 -0600)]
Fix Makefile.am

5 years agoUse v1.8.0 as next version instead of v1.7.5
Eric Biggers [Mon, 16 Feb 2015 05:34:14 +0000 (23:34 -0600)]
Use v1.8.0 as next version instead of v1.7.5

5 years agoUpdate NEWS, README, and docs
Eric Biggers [Mon, 16 Feb 2015 05:16:23 +0000 (23:16 -0600)]
Update NEWS, README, and docs

5 years agoUse 64MiB chunks by default for solid LZMS
Eric Biggers [Mon, 16 Feb 2015 01:04:29 +0000 (19:04 -0600)]
Use 64MiB chunks by default for solid LZMS

5 years agoLCP-interval tree matchfinder improvements
Eric Biggers [Fri, 13 Feb 2015 07:13:15 +0000 (01:13 -0600)]
LCP-interval tree matchfinder improvements

- Adjust the algorithm to remove the need to have an "unvisited" flag in
  normal mode.
- Prefetch upcoming SA_and_LCP entries during LCP construction.
- Get rid of lcpit_matchfinder_templates.h, since the "huge mode"
  algorithm isn't quite the same as the regular algorithm anymore.
- Improve documentation.

5 years agoSupport "destructive" compression to save memory
Eric Biggers [Sun, 15 Feb 2015 00:30:24 +0000 (18:30 -0600)]
Support "destructive" compression to save memory

5 years agoReduce unnecessary copying during chunk compression
Eric Biggers [Sat, 14 Feb 2015 22:03:28 +0000 (16:03 -0600)]
Reduce unnecessary copying during chunk compression

5 years agoAdd flag for disabling solid sort
Eric Biggers [Sat, 14 Feb 2015 20:58:45 +0000 (14:58 -0600)]
Add flag for disabling solid sort

5 years agoHeuristic sorting of streams for solid compression
Eric Biggers [Sat, 14 Feb 2015 16:47:56 +0000 (10:47 -0600)]
Heuristic sorting of streams for solid compression

5 years agoUpdate documentation for wimcapture
Eric Biggers [Sat, 14 Feb 2015 05:39:24 +0000 (23:39 -0600)]
Update documentation for wimcapture

5 years agowimlib-imagex: allow specifying suffix in chunk size options
Eric Biggers [Sat, 14 Feb 2015 04:53:50 +0000 (22:53 -0600)]
wimlib-imagex: allow specifying suffix in chunk size options

5 years agoConsistently use the name "solid resource"
Eric Biggers [Sat, 14 Feb 2015 04:04:41 +0000 (22:04 -0600)]
Consistently use the name "solid resource"

5 years agoRewrite of LZMS compressor
Eric Biggers [Fri, 13 Feb 2015 01:01:06 +0000 (19:01 -0600)]
Rewrite of LZMS compressor

- Delta match support
- Multi-step item consideration in selected cases
- Various refactoring; updates to comments and names; some changes to
  decompressor as well
- Remove pthreads dependency

5 years agolzms_decompress.c: Adjust names in delta match decompression code
Eric Biggers [Sat, 7 Feb 2015 03:59:47 +0000 (21:59 -0600)]
lzms_decompress.c: Adjust names in delta match decompression code

5 years agolzms_decompress.c: Add more information about delta matches
Eric Biggers [Sat, 7 Feb 2015 03:59:11 +0000 (21:59 -0600)]
lzms_decompress.c: Add more information about delta matches

5 years agoSuffix array based matchfinder updates
Eric Biggers [Sat, 31 Jan 2015 23:51:23 +0000 (17:51 -0600)]
Suffix array based matchfinder updates

- Move LCP-interval tree matchfinder to lcpit_matchfinder.c
- Support buffer sizes > 2^25 in LCP-interval tree matchfinder
- Reduce code duplication in LCP-interval tree routines
- Remove linked suffix array matchfinder
- Remove lz_mf matchfinder API
- Update LZMS compressor to use new LCP-interval tree matchfinder routines

5 years ago1.7.5-BETA3
Eric Biggers [Fri, 30 Jan 2015 03:59:35 +0000 (21:59 -0600)]
1.7.5-BETA3

5 years agoMove errno translation to win32_replacements.c
Eric Biggers [Fri, 30 Jan 2015 03:24:57 +0000 (21:24 -0600)]
Move errno translation to win32_replacements.c

5 years agoWindows: improved error messages
Eric Biggers [Fri, 30 Jan 2015 01:16:28 +0000 (19:16 -0600)]
Windows: improved error messages

5 years agowin32_apply.c: in NO_ATTRIBUTES mode, reset file attributes
Eric Biggers [Fri, 30 Jan 2015 01:28:31 +0000 (19:28 -0600)]
win32_apply.c: in NO_ATTRIBUTES mode, reset file attributes

5 years agowin32-test-imagex-capture_and_apply.bat: fixes
Eric Biggers [Fri, 30 Jan 2015 00:46:30 +0000 (18:46 -0600)]
win32-test-imagex-capture_and_apply.bat: fixes

5 years agowin32_apply.c: adjust file creation
Eric Biggers [Thu, 29 Jan 2015 05:37:28 +0000 (23:37 -0600)]
win32_apply.c: adjust file creation

5 years agowin32-tree-cmp: Ignore directory sizes
Eric Biggers [Thu, 29 Jan 2015 06:25:19 +0000 (00:25 -0600)]
win32-tree-cmp: Ignore directory sizes

5 years agowin32-test-imagex-capture_and_apply.bat: add tests for empty named stream
Eric Biggers [Thu, 29 Jan 2015 05:13:36 +0000 (23:13 -0600)]
win32-test-imagex-capture_and_apply.bat: add tests for empty named stream

5 years agowin32-test-imagex-capture_and_apply.bat: add some tests
Eric Biggers [Thu, 29 Jan 2015 04:26:11 +0000 (22:26 -0600)]
win32-test-imagex-capture_and_apply.bat: add some tests

5 years agowin32-tree-cmp updates
Eric Biggers [Thu, 29 Jan 2015 03:05:30 +0000 (21:05 -0600)]
win32-tree-cmp updates

5 years agontfs-3g_apply.c: Don't claim to support encrypted directories
Eric Biggers [Thu, 29 Jan 2015 02:36:36 +0000 (20:36 -0600)]
ntfs-3g_apply.c: Don't claim to support encrypted directories

5 years agoUpdate NEWS
Eric Biggers [Wed, 28 Jan 2015 05:28:48 +0000 (23:28 -0600)]
Update NEWS

5 years agowin32_apply.c: fix restore of encrypted files and directories
Eric Biggers [Wed, 28 Jan 2015 05:18:51 +0000 (23:18 -0600)]
win32_apply.c: fix restore of encrypted files and directories

5 years agowin32_apply.c: test for EFS data before reparse data
Eric Biggers [Wed, 28 Jan 2015 04:31:41 +0000 (22:31 -0600)]
win32_apply.c: test for EFS data before reparse data

5 years agoextract.c: dentry_is_supported(): check all relevant attributes
Eric Biggers [Wed, 28 Jan 2015 04:30:22 +0000 (22:30 -0600)]
extract.c: dentry_is_supported(): check all relevant attributes

5 years agowin32_capture.c: use NULL instead of INVALID_HANDLE_VALUE
Eric Biggers [Wed, 28 Jan 2015 04:07:52 +0000 (22:07 -0600)]
win32_capture.c: use NULL instead of INVALID_HANDLE_VALUE

Code was correct, but since this is an NT-level handle NULL makes more
sense.

5 years agowin32_capture.c: adjust loading stream info from encrypted files
Eric Biggers [Wed, 28 Jan 2015 04:05:56 +0000 (22:05 -0600)]
win32_capture.c: adjust loading stream info from encrypted files

The previous code was not using ReadEncryptedFileRaw() on directories,
which is apparently needed.

5 years agoextract.c: check for empty extraction list
Eric Biggers [Wed, 28 Jan 2015 02:58:28 +0000 (20:58 -0600)]
extract.c: check for empty extraction list

5 years agowin32_capture.c: fix for opening encrypted files when key is unavailable
Eric Biggers [Wed, 28 Jan 2015 02:45:00 +0000 (20:45 -0600)]
win32_capture.c: fix for opening encrypted files when key is unavailable

5 years agoUpdate NEWS
Eric Biggers [Wed, 28 Jan 2015 01:14:36 +0000 (19:14 -0600)]
Update NEWS

5 years agowimlib_iterate_dir_tree(): iterate in default case order
Eric Biggers [Wed, 28 Jan 2015 01:09:36 +0000 (19:09 -0600)]
wimlib_iterate_dir_tree(): iterate in default case order