Always check the return value of lseek.

This is a follow-up to r289845, which only fixed one occurence of CID
1009429.

Coverity CID:	1009429
Reviewed by:	markj
MFC after:	2 weeks
X-MFC-With:	r289845
Sponsored by:	Spectra Logic
Differential Revision:	https://reviews.freebsd.org/D4096
This commit is contained in:
Alan Somers 2015-11-06 19:18:20 +00:00
parent b94650a2bb
commit 49f1692b78
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=290463

View File

@ -491,9 +491,8 @@ DoFile(const char *savedir, const char *device)
}
lasthd = mediasize - sectorsize;
lseek(fd, lasthd, SEEK_SET);
error = read(fd, &kdhl, sizeof kdhl);
if (error != sizeof kdhl) {
if (lseek(fd, lasthd, SEEK_SET) != lasthd ||
read(fd, &kdhl, sizeof(kdhl)) != sizeof(kdhl)) {
syslog(LOG_ERR,
"error reading last dump header at offset %lld in %s: %m",
(long long)lasthd, device);
@ -569,9 +568,8 @@ DoFile(const char *savedir, const char *device)
}
dumpsize = dtoh64(kdhl.dumplength);
firsthd = lasthd - dumpsize - sizeof kdhf;
lseek(fd, firsthd, SEEK_SET);
error = read(fd, &kdhf, sizeof kdhf);
if (error != sizeof kdhf) {
if (lseek(fd, firsthd, SEEK_SET) != firsthd ||
read(fd, &kdhf, sizeof(kdhf)) != sizeof(kdhf)) {
syslog(LOG_ERR,
"error reading first dump header at offset %lld in %s: %m",
(long long)firsthd, device);