summaryrefslogtreecommitdiff
path: root/sbin/disklabel
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2013-05-13 18:01:08 +0000
committerchristos <christos@NetBSD.org>2013-05-13 18:01:08 +0000
commit5aef47732b92709cb61742759b10bf9af1ad1ca2 (patch)
tree314e9c06d1aae481b5d9a405d01ecb1a6e39e465 /sbin/disklabel
parent46f642181d268b40774b899fe28390116244a3da (diff)
CVE 1020933: Prevent integer overflow by using wider type
Diffstat (limited to 'sbin/disklabel')
-rw-r--r--sbin/disklabel/main.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/sbin/disklabel/main.c b/sbin/disklabel/main.c
index b05b379bece..966c8e330eb 100644
--- a/sbin/disklabel/main.c
+++ b/sbin/disklabel/main.c
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.33 2013/05/13 17:58:50 christos Exp $ */
+/* $NetBSD: main.c,v 1.34 2013/05/13 18:01:08 christos Exp $ */
/*
* Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -76,7 +76,7 @@ __COPYRIGHT("@(#) Copyright (c) 1987, 1993\
static char sccsid[] = "@(#)disklabel.c 8.4 (Berkeley) 5/4/95";
/* from static char sccsid[] = "@(#)disklabel.c 1.2 (Symmetric) 11/28/85"; */
#else
-__RCSID("$NetBSD: main.c,v 1.33 2013/05/13 17:58:50 christos Exp $");
+__RCSID("$NetBSD: main.c,v 1.34 2013/05/13 18:01:08 christos Exp $");
#endif
#endif /* not lint */
@@ -1136,7 +1136,7 @@ find_label(int f, u_int sector)
{
struct disklabel *disk_lp, hlp;
int i;
- u_int offset;
+ off_t offset;
const char *is_deleted;
bootarea_len = pread(f, bootarea, sizeof bootarea,
@@ -1172,19 +1172,19 @@ find_label(int f, u_int sector)
if (target32toh(disk_lp->d_magic) == DISKMAGIC_REV &&
target32toh(disk_lp->d_magic2) == DISKMAGIC_REV)
warnx("ignoring %sbyteswapped label"
- " at offset %u from sector %u",
+ " at offset %td from sector %u",
is_deleted, offset, sector);
continue;
}
if (target16toh(disk_lp->d_npartitions) > maxpartitions ||
dkcksum_target(disk_lp) != 0) {
if (verbose > 0)
- warnx("corrupt label found at offset %u in "
+ warnx("corrupt label found at offset %td in "
"sector %u", offset, sector);
continue;
}
if (verbose > 1)
- warnx("%slabel found at offset %u from sector %u",
+ warnx("%slabel found at offset %td from sector %u",
is_deleted, offset, sector);
if (!read_all)
return disk_lp;
@@ -1192,7 +1192,7 @@ find_label(int f, u_int sector)
/* To print all the labels we have to do it here */
/* XXX: maybe we should compare them? */
targettohlabel(&hlp, disk_lp);
- printf("# %ssector %u offset %u bytes\n",
+ printf("# %ssector %u offset %td bytes\n",
is_deleted, sector, offset);
if (tflag)
makedisktab(stdout, &hlp);