Don't overflow when calculating the size in MB of a partition.

No more 241MB 4+ gig partitions for me!
This commit is contained in:
Justin T. Gibbs 1997-06-02 19:25:48 +00:00
parent 2895de58f2
commit 637fe2f7f3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=26389
2 changed files with 24 additions and 6 deletions

View File

@ -429,17 +429,26 @@ static struct dos_partition mtpart = { 0 };
static void
print_part(int i)
{
struct dos_partition *partp = ((struct dos_partition *) &mboot.parts) + i;
struct dos_partition *partp;
u_int64_t part_mb;
partp = ((struct dos_partition *) &mboot.parts) + i;
if (!bcmp(partp, &mtpart, sizeof (struct dos_partition))) {
printf("<UNUSED>\n");
return;
}
/*
* Be careful not to overflow.
*/
part_mb = partp->dp_size;
part_mb *= secsize;
part_mb /= (1024 * 1024);
printf("sysid %d,(%s)\n", partp->dp_typ, get_type(partp->dp_typ));
printf(" start %ld, size %ld (%ld Meg), flag %x\n",
printf(" start %ld, size %ld (%qd Meg), flag %x\n",
partp->dp_start,
partp->dp_size, partp->dp_size * secsize / (1024 * 1024),
partp->dp_size,
part_mb,
partp->dp_flag);
printf("\tbeg: cyl %d/ sector %d/ head %d;\n\tend: cyl %d/ sector %d/ head %d\n"
,DPCYL(partp->dp_scyl, partp->dp_ssect)

View File

@ -429,17 +429,26 @@ static struct dos_partition mtpart = { 0 };
static void
print_part(int i)
{
struct dos_partition *partp = ((struct dos_partition *) &mboot.parts) + i;
struct dos_partition *partp;
u_int64_t part_mb;
partp = ((struct dos_partition *) &mboot.parts) + i;
if (!bcmp(partp, &mtpart, sizeof (struct dos_partition))) {
printf("<UNUSED>\n");
return;
}
/*
* Be careful not to overflow.
*/
part_mb = partp->dp_size;
part_mb *= secsize;
part_mb /= (1024 * 1024);
printf("sysid %d,(%s)\n", partp->dp_typ, get_type(partp->dp_typ));
printf(" start %ld, size %ld (%ld Meg), flag %x\n",
printf(" start %ld, size %ld (%qd Meg), flag %x\n",
partp->dp_start,
partp->dp_size, partp->dp_size * secsize / (1024 * 1024),
partp->dp_size,
part_mb,
partp->dp_flag);
printf("\tbeg: cyl %d/ sector %d/ head %d;\n\tend: cyl %d/ sector %d/ head %d\n"
,DPCYL(partp->dp_scyl, partp->dp_ssect)