summaryrefslogtreecommitdiffstats
path: root/sbin/bsdlabel
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2001-03-05 03:39:57 +0000
committerimp <imp@FreeBSD.org>2001-03-05 03:39:57 +0000
commita0cea41d1535e2f02eaa1c47ac389f8d3d91d145 (patch)
treeac52a9bcd9951a5a89cb90d8426208cdcc0ca5e8 /sbin/bsdlabel
parentfd7e18a5ae05ee29641e0419d2e6d9db8b01d121 (diff)
downloadFreeBSD-src-a0cea41d1535e2f02eaa1c47ac389f8d3d91d145.zip
FreeBSD-src-a0cea41d1535e2f02eaa1c47ac389f8d3d91d145.tar.gz
First attempt to not overflow in disk space calculations. Use off_t
for the size variable used to calculate the size of the partition. Also use ULL suffix for constants to ensure that we use 64 bit math.
Diffstat (limited to 'sbin/bsdlabel')
-rw-r--r--sbin/bsdlabel/bsdlabel.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sbin/bsdlabel/bsdlabel.c b/sbin/bsdlabel/bsdlabel.c
index cec9cc0..26c2ee3 100644
--- a/sbin/bsdlabel/bsdlabel.c
+++ b/sbin/bsdlabel/bsdlabel.c
@@ -1331,7 +1331,7 @@ checklabel(lp)
register struct partition *pp;
int i, errors = 0;
char part;
- unsigned long total_size,total_percent,current_offset;
+ unsigned long total_size, total_percent, current_offset;
int seen_default_offset;
int hog_part;
int j;
@@ -1394,7 +1394,7 @@ checklabel(lp)
}
} else {
char *type;
- unsigned long size;
+ off_t size;
size = pp->p_size;
switch (part_size_type[i]) {
@@ -1403,15 +1403,15 @@ checklabel(lp)
break;
case 'k':
case 'K':
- size *= 1024UL;
+ size *= 1024ULL;
break;
case 'm':
case 'M':
- size *= ((unsigned long) 1024*1024);
+ size *= 1024ULL * 1024ULL;
break;
case 'g':
case 'G':
- size *= ((unsigned long) 1024*1024*1024);
+ size *= 1024ULL * 1024ULL * 1024ULL;
break;
case '\0':
break;
OpenPOWER on IntegriCloud