summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1997-12-11 07:27:06 +0000
committerbde <bde@FreeBSD.org>1997-12-11 07:27:06 +0000
commit52b8e9813edc79062fd4253339febac539c7bfba (patch)
treea8ac214281d2033248c4f8c09dde9df6ee06109e /usr.sbin
parentac983318f52dbd430be851fd99e3dc125f2b2d39 (diff)
downloadFreeBSD-src-52b8e9813edc79062fd4253339febac539c7bfba.zip
FreeBSD-src-52b8e9813edc79062fd4253339febac539c7bfba.tar.gz
Fixed the usual multiplication overflow bug in an lseek() offset calculation.
The scan for bad sectors was broken for offsets >= 4G on 32-bit systems.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/bad144/bad144.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/bad144/bad144.c b/usr.sbin/bad144/bad144.c
index 80e2dfc..61c9cd1 100644
--- a/usr.sbin/bad144/bad144.c
+++ b/usr.sbin/bad144/bad144.c
@@ -42,7 +42,7 @@ static const char copyright[] =
static char sccsid[] = "@(#)bad144.c 8.2 (Berkeley) 4/27/95";
#endif
static const char rcsid[] =
- "$Id: bad144.c,v 1.13 1997/09/04 11:40:51 charnier Exp $";
+ "$Id: bad144.c,v 1.14 1997/12/11 07:12:10 bde Exp $";
#endif /* not lint */
/*
@@ -144,7 +144,8 @@ bad_scan(argc, argv, dp, f, bstart, bend)
curr_sec,bend,(curr_sec*100/bend));
}
- lseek(f, curr_sec * ss, L_SET);
+ if (lseek(f, (off_t)ss * curr_sec, SEEK_SET) < 0)
+ err(4, "lseek");
if ((n = read(f, buf, ss)) != ss) {
if (verbose)
OpenPOWER on IntegriCloud