1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 10:42:36 +01:00

TAR: Allow to use save_directory with a buffer not 512-bytes aligned

This commit is contained in:
Eladash 2021-09-06 15:45:13 +03:00 committed by Megamouse
parent 8d662e9327
commit 27becdec97

View File

@ -306,6 +306,8 @@ std::vector<u8> tar_object::save_directory(const std::string& src_dir, std::vect
{
fs::file fd(target_path);
const u64 old_size2 = init.size();
if (func)
{
// Use custom function for file saving if provided
@ -319,13 +321,12 @@ std::vector<u8> tar_object::save_directory(const std::string& src_dir, std::vect
}
else
{
const u64 old_size2 = init.size();
init.resize(init.size() + stat.size);
ensure(fd.read(init.data() + old_size2, stat.size) == stat.size);
}
// Align
init.resize(utils::align(init.size(), 512));
init.resize(old_size2 + utils::align(init.size() - old_size2, 512));
fd.close();
fs::utime(target_path, stat.atime, stat.mtime);