From: Ruediger Meier Date: Tue, 23 Jan 2018 15:59:25 +0000 (+0100) Subject: fsck.cramfs: fix error message X-Git-Tag: v2.32-rc1~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68ac426949170bb3802a6d610f366f24aa0bb734;p=thirdparty%2Futil-linux.git fsck.cramfs: fix error message errno is invalid in case that we just read(3) too short. Signed-off-by: Ruediger Meier --- diff --git a/disk-utils/fsck.cramfs.c b/disk-utils/fsck.cramfs.c index 820816b14d..2a4f75a8c7 100644 --- a/disk-utils/fsck.cramfs.c +++ b/disk-utils/fsck.cramfs.c @@ -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) {