Issue #3015 has been updated by liweitianux.

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.

----------------------------------------
Bug #3015: sbin/gpt/show.c:133: do we always find what we are looking for ?
http://bugs.dragonflybsd.org/issues/3015#change-13700

* Author: dcb
* Status: Resolved
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
dragonfly/sbin/gpt/show.c:133]: (error) Array 'mbr.mbr_part[4]' 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.




-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://bugs.dragonflybsd.org/my/account

Reply via email to