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.
This commit is contained in:
Warner Losh 2001-03-05 03:39:57 +00:00
parent fc03710c55
commit 8d3105e8d4
2 changed files with 10 additions and 10 deletions

View File

@ -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;

View File

@ -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;