From f569bf66e90375f571f56fb5583ed8278ff93cfc Mon Sep 17 00:00:00 2001 From: arbee Date: Tue, 4 Jun 2024 23:08:15 -0400 Subject: util/ioprocs.cpp: Count zero actual bytes written on a write call as an error. Fixes lock-up writing to a write-protected image. [R. Belmont, Peter Ferrie] --- src/lib/util/ioprocs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/util/ioprocs.cpp b/src/lib/util/ioprocs.cpp index 37a958713b3..a9a26ffd313 100644 --- a/src/lib/util/ioprocs.cpp +++ b/src/lib/util/ioprocs.cpp @@ -797,7 +797,7 @@ std::pair write(write_stream &stream, void co std::size_t written; std::error_condition err = stream.write_some(buffer, length, written); actual += written; - if (err && (std::errc::interrupted != err)) + if ((err || !actual) && (std::errc::interrupted != err)) return std::make_pair(err, actual); buffer = reinterpret_cast(buffer) + written; length -= written; -- cgit v1.2.3