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;