X-Git-Url: https://git.sesse.net/?p=plocate;a=blobdiff_plain;f=complete_pread.cpp;h=3b369455f920304958d9fb3dee0bf08ffc43cc0b;hp=8571b33682deb85261d5bb13bfdcc91cfb41ac9f;hb=HEAD;hpb=63fd24efd774f1ed3f5dab82b934f35b7b039557 diff --git a/complete_pread.cpp b/complete_pread.cpp index 8571b33..3b36945 100644 --- a/complete_pread.cpp +++ b/complete_pread.cpp @@ -15,7 +15,7 @@ bool try_complete_pread(int fd, void *ptr, size_t len, off_t offset) } ptr = reinterpret_cast(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); } }