Snap for 11097608 from 09fe472317b1656315058815939d52f47c75885d to 24Q1-release
Change-Id: Id4919ac4a6c9758d14b95c277307aa45414dc476
diff --git a/file.cpp b/file.cpp
index e433a07..f71773b 100644
--- a/file.cpp
+++ b/file.cpp
@@ -313,7 +313,11 @@
size_t remaining = byte_count;
while (remaining > 0) {
ssize_t n = TEMP_FAILURE_RETRY(read(fd.get(), p, remaining));
- if (n <= 0) return false;
+ if (n == 0) { // EOF
+ errno = ENODATA;
+ return false;
+ }
+ if (n == -1) return false;
p += n;
remaining -= n;
}
@@ -358,7 +362,11 @@
uint8_t* p = reinterpret_cast<uint8_t*>(data);
while (byte_count > 0) {
ssize_t n = TEMP_FAILURE_RETRY(pread(fd.get(), p, byte_count, offset));
- if (n <= 0) return false;
+ if (n == 0) { // EOF
+ errno = ENODATA;
+ return false;
+ }
+ if (n == -1) return false;
p += n;
byte_count -= n;
offset += n;