]> git.sesse.net Git - plocate/blobdiff - complete_pread.cpp
Release plocate 1.1.22.
[plocate] / complete_pread.cpp
index 8571b33682deb85261d5bb13bfdcc91cfb41ac9f..3b369455f920304958d9fb3dee0bf08ffc43cc0b 100644 (file)
@@ -15,7 +15,7 @@ bool try_complete_pread(int fd, void *ptr, size_t len, off_t offset)
                }
                ptr = reinterpret_cast<char *>(ptr) + ret;
                len -= ret;
-               offset -= ret;
+               offset += ret;
        }
        return true;
 }
@@ -23,7 +23,11 @@ bool try_complete_pread(int fd, void *ptr, size_t len, off_t offset)
 void complete_pread(int fd, void *ptr, size_t len, off_t offset)
 {
        if (!try_complete_pread(fd, ptr, len, offset)) {
-               perror("pread");
+               if (errno == 0) {
+                       fprintf(stderr, "pread: Short read (file corrupted?)\n");
+               } else {
+                       perror("pread");
+               }
                exit(1);
        }
 }