]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
fsck.cramfs: fix error message
authorRuediger Meier <ruediger.meier@ga-group.nl>
Tue, 23 Jan 2018 15:59:25 +0000 (16:59 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 24 Jan 2018 11:53:34 +0000 (12:53 +0100)
errno is invalid in case that we just read(3) too short.

Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
disk-utils/fsck.cramfs.c

index 820816b14d3be2f9acdf1b8813a72e1740582b2f..2a4f75a8c730b2ecae066937c1b9d0df0cb50464 100644 (file)
@@ -226,10 +226,15 @@ static void test_crc(int start)
                    mmap(NULL, super.size, PROT_READ | PROT_WRITE,
                         MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
                if (buf != MAP_FAILED) {
+                       ssize_t tmp;
                        if (lseek(fd, 0, SEEK_SET) == (off_t) -1)
                                err(FSCK_EX_ERROR, _("seek on %s failed"), filename);
-                       if (read(fd, buf, super.size) != (ssize_t) super.size)
+                       tmp = read(fd, buf, super.size);
+                       if (tmp < 0)
                                err(FSCK_EX_ERROR, _("cannot read %s"), filename);
+                       if (tmp != (ssize_t) super.size)
+                               errx(FSCK_EX_ERROR, _("failed to read %"PRIu32" bytes from file %s"),
+                                       super.size, filename);
                }
        }
        if (buf != MAP_FAILED) {