Stored files with size exactly 4 GiB (4,294,967,296 bytes) are now
decompressed correctly.
- Paths passed to wimlib_extract_paths() may now use either forwards or
- backwards slashes, as documented.
+ Paths passed to wimlib_extract_paths() and wimlib_iterate_dir_tree() may
+ now use either forwards or backwards slashes, as documented.
Fixed a potential stack overflow when extracting solid archives (packed
streams) containing more than about 100000 files.
/* API function documented in wimlib.h */
WIMLIBAPI int
-wimlib_iterate_dir_tree(WIMStruct *wim, int image, const tchar *path,
+wimlib_iterate_dir_tree(WIMStruct *wim, int image, const tchar *_path,
int flags,
wimlib_iterate_dir_tree_callback_t cb, void *user_ctx)
{
+ tchar *path;
+ int ret;
+
+ path = canonicalize_wim_path(_path);
+ if (path == NULL)
+ return WIMLIB_ERR_NOMEM;
struct image_iterate_dir_tree_ctx ctx = {
.path = path,
.flags = flags,
.user_ctx = user_ctx,
};
wim->private = &ctx;
- return for_image(wim, image, image_do_iterate_dir_tree);
+ ret = for_image(wim, image, image_do_iterate_dir_tree);
+ FREE(path);
+ return ret;
}
/* Returns %true iff the metadata of @inode and @template_inode are reasonably