haze: fix file size transmission issue

This commit is contained in:
Liam 2023-04-19 01:08:37 -04:00 committed by SciresM
parent 8e2eca2004
commit a7300b0fa4

View file

@ -722,7 +722,9 @@ namespace haze {
R_TRY(m_fs.SetFileSize(std::addressof(file), 0)); R_TRY(m_fs.SetFileSize(std::addressof(file), 0));
/* Expand to the needed size. */ /* Expand to the needed size. */
R_TRY(m_fs.SetFileSize(std::addressof(file), data_header.length)); if (data_header.length > sizeof(PtpUsbBulkContainer)) {
R_TRY(m_fs.SetFileSize(std::addressof(file), data_header.length - sizeof(PtpUsbBulkContainer)));
}
/* Begin writing to the filesystem. */ /* Begin writing to the filesystem. */
while (true) { while (true) {
@ -743,6 +745,9 @@ namespace haze {
R_TRY(read_res); R_TRY(read_res);
} }
/* Truncate the file to the received size. */
R_TRY(m_fs.SetFileSize(std::addressof(file), offset));
/* Write the success response. */ /* Write the success response. */
R_RETURN(this->WriteResponse(PtpResponseCode_Ok)); R_RETURN(this->WriteResponse(PtpResponseCode_Ok));
} }