Actions
Bug #3015
closedsbin/gpt/show.c:133: do we always find what we are looking for ?
Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
04/11/2017
Due date:
% Done:
0%
Estimated time:
Description
dragonfly/sbin/gpt/show.c:133]: (error) Array 'mbr.mbr_part4' accessed at index 4, which is out of bounds.
Source code is
for (i = 0; i < 4; i++) {
start = le16toh(mbr->mbr_part[i].part_start_hi);
start = (start << 16) +
le16toh(mbr->mbr_part[i].part_start_lo);
if (m->map_start == p->map_start + start)
break;
}
printf("%d", mbr->mbr_part[i].part_typ);
In the final printf, the code assumes we have found what we are looking for.
Maybe the code would be stronger if it dealt with the case where it didn't.
Updated by liweitianux over 5 years ago
- Status changed from New to Resolved
The code is actually right, but not obvious. I've improved the code against NetBSD and make this code clearer.
Actions