Firmware installation bugfixes (#9855)

* Fix race condition in PUP installation abortion.
* Fix freezes of emulator in case the PUP installation failed due to filesystem errors.
* Use fs::create_path as opposed to fs::create_dir as it is can create upper directories in case they are missing and is better in error handling.
* Report TAR errors on failure to create directories.
* Fix pup_object constructor to not crash on invalid PUP file header. (report an error)
* Fix pup_object::validate_hashes to not crash on invalid PUP file entries. (report an error)
* Do not call Qt functions inside a named_thread because it is wrong.
This commit is contained in:
Eladash
2021-02-28 21:59:27 +02:00
committed by GitHub
parent dfee46604a
commit 461fa6a88a
4 changed files with 73 additions and 31 deletions
+6 -1
View File
@@ -131,7 +131,12 @@ bool tar_object::extract(std::string path, std::string ignore)
case '5':
{
fs::create_dir(result);
if (!fs::create_path(result))
{
tar_log.error("TAR Loader: failed to create directory %s (%s)", header.name, fs::g_tls_error);
return false;
}
break;
}