@@ -22,9 +22,10 @@ use crate::{
2222 info, info_accessible,
2323 list:: { FileInArchive , ListFileType } ,
2424 utils:: {
25- BytesFmt , FileType , FileVisibilityPolicy , PathFmt , SanitizedStr , canonicalize, cd_into_same_dir_as,
26- create_symlink, ensure_parent_dir_exists, get_invalid_utf8_paths, is_same_file_as_output,
27- pretty_format_list_of_paths, read_file_type, strip_cur_dir, validate_dest_inside_root, validate_symlink_target,
25+ BytesFmt , FileType , FileVisibilityPolicy , LimitedReader , PathFmt , SanitizedStr , canonicalize,
26+ cd_into_same_dir_as, create_symlink, ensure_parent_dir_exists, get_invalid_utf8_paths, is_same_file_as_output,
27+ max_decompressed_bytes, pretty_format_list_of_paths, read_file_type, strip_cur_dir, validate_dest_inside_root,
28+ validate_symlink_target,
2829 } ,
2930 warning,
3031} ;
@@ -106,7 +107,10 @@ where
106107 } ;
107108 #[ cfg( not( unix) ) ]
108109 let mut output_file = fs:: File :: create ( file_path) ?;
109- io:: copy ( & mut file, & mut output_file) ?;
110+ {
111+ let mut limited = LimitedReader :: new ( & mut file, max_decompressed_bytes ( ) ) ;
112+ io:: copy ( & mut limited, & mut output_file) ?;
113+ }
110114 set_last_modified_time ( & file, file_path) ?;
111115 #[ cfg( unix) ]
112116 unix_set_permissions ( file_path, & file) ?;
0 commit comments