From b3f1ef8bc226fd62dc3c3393965b9f5f2cfe3f5f Mon Sep 17 00:00:00 2001 From: J Reece Wilson Date: Wed, 13 Mar 2024 10:36:48 +0000 Subject: [PATCH] [*] Fix recent regression in f401c6f750ec3e9cf0adf39bca67c1df7028cd64 and fix two ignored return values --- Source/IO/FS/FS.cpp | 15 ++++++++------- Source/IO/FS/FileStream.NT.cpp | 6 +++++- Source/IO/FS/FileStream.Unix.cpp | 6 +++++- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Source/IO/FS/FS.cpp b/Source/IO/FS/FS.cpp index 906afe0c..491c62b9 100644 --- a/Source/IO/FS/FS.cpp +++ b/Source/IO/FS/FS.cpp @@ -355,8 +355,9 @@ namespace Aurora::IO::FS bOk = pStream->Write(AuMemoryViewStreamRead { bom }); if (auto uLength = str.length()) { - bOk &= pStream->Write(AuMemoryViewStreamRead { str, uLength }); - bOk &= uLength == uLength; + AuUInt uOutLength {}; + bOk &= pStream->Write(AuMemoryViewStreamRead { str, uOutLength }); + bOk &= uOutLength == uLength; } else { @@ -378,7 +379,6 @@ namespace Aurora::IO::FS { AuIO::IOHandle handle; - AuUInt uLength {}; auto createRequest = AuIO::IIOHandle::HandleCreate::ReadWrite(path); createRequest.bAlwaysCreateDirTree = true; @@ -397,8 +397,9 @@ namespace Aurora::IO::FS bOk = pStream->Write(AuMemoryViewStreamRead { bom }); if (auto uLength = str.length()) { - bOk &= pStream->Write(AuMemoryViewStreamRead { str, uLength }); - bOk &= uLength == uLength; + AuUInt uOutLength {}; + bOk &= pStream->Write(AuMemoryViewStreamRead { str, uOutLength }); + bOk &= uOutLength == uLength; } else { @@ -418,7 +419,6 @@ namespace Aurora::IO::FS bool bOk {}; { - AuUInt uLength {}; AuIO::IOHandle handle; auto createRequest = AuIO::IIOHandle::HandleCreate::ReadWrite(path); @@ -438,6 +438,7 @@ namespace Aurora::IO::FS if (blob.length) { + AuUInt uLength {}; bOk = pStream->Write(AuMemoryViewStreamRead { blob, uLength }); bOk &= uLength == blob.length; } @@ -457,7 +458,6 @@ namespace Aurora::IO::FS AUKN_SYM bool WriteFile(const AuString &path, const Memory::MemoryViewRead &blob) { bool bOk {}; - AuUInt uLength {}; AuIO::IOHandle handle; auto createRequest = AuIO::IIOHandle::HandleCreate::ReadWrite(path); createRequest.bAlwaysCreateDirTree = true; @@ -476,6 +476,7 @@ namespace Aurora::IO::FS if (blob.length) { + AuUInt uLength {}; bOk = pStream->Write(AuMemoryViewStreamRead { blob, uLength }); bOk &= uLength == blob.length; } diff --git a/Source/IO/FS/FileStream.NT.cpp b/Source/IO/FS/FileStream.NT.cpp index cdcac66e..3bb24365 100644 --- a/Source/IO/FS/FileStream.NT.cpp +++ b/Source/IO/FS/FileStream.NT.cpp @@ -527,7 +527,11 @@ namespace Aurora::IO::FS auto pOld = pIOHandle; pIOHandle = AuMakeShared(); SysCheckNotNullMemory(pIOHandle, {}); - pIOHandle->InitFromPair(pOld->GetOSReadHandleSafe(), pOld->GetOSWriteHandle()); + if (!pIOHandle->InitFromPair(pOld->GetOSReadHandleSafe(), pOld->GetOSWriteHandle())) + { + SysPushErrorIOResourceFailure(); + return {}; + } } pStream->Init(pIOHandle); diff --git a/Source/IO/FS/FileStream.Unix.cpp b/Source/IO/FS/FileStream.Unix.cpp index b787132c..61d020a5 100755 --- a/Source/IO/FS/FileStream.Unix.cpp +++ b/Source/IO/FS/FileStream.Unix.cpp @@ -397,7 +397,11 @@ namespace Aurora::IO::FS auto pOld = pIOHandle; pIOHandle = AuMakeShared(); SysCheckNotNullMemory(pIOHandle, {}); - pIOHandle->InitFromPair(pOld->GetOSReadHandleSafe(), pOld->GetOSWriteHandle()); + if (!pIOHandle->InitFromPair(pOld->GetOSReadHandleSafe(), pOld->GetOSWriteHandle())) + { + SysPushErrorIOResourceFailure(); + return {}; + } } pStream->Init(pIOHandle);