Port-xen archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [PATCH v3 4/7] sysctl: Add sysctl interface for querying PCI topology
Date: Mon, 9 Feb 2015 15:04:32 -0500
From: Boris Ostrovsky <boris.ostrovsky%oracle.com@localhost>
Message-ID: <1423512275-6531-5-git-send-email-boris.ostrovsky%oracle.com@localhost>
| + num_devs = ti->num_devs - ti->first_dev;
| +
| + if ( guest_handle_is_null(ti->devs) ||
| + guest_handle_is_null(ti->nodes) ||
| + (num_devs <= 0) )
| + {
| + ret = -EINVAL;
| + break;
| + }
Does that need a check that ti->first_dev <= ti_num_devs ?
(that is aside from the issue of subtracting one uint from another and hoping
that you'll get a negative signed int if the one subtracted is bigger).
The (num_devs <= 0) test (even if it works - which it should on most
rational architectures) isn't good enough, as it is possible to subtract
a very big uint from a very small unit and end up with an int that is
positive (and potentially, very big, consider (32bit): 2 - 0x80000001).
So, replace the (num_devs <= 0) test by (ti->first_dev <= ti->num_devs) ??
Or possibly include both tests, just in case ti->num_devs is very large and
ti->first_dev is small (like 0) and when the large unsigned is converted
to signed, it becomes negative - or is all of this just too impossible
to worry about?
kre
Home |
Main Index |
Thread Index |
Old Index