mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
libxc: Fix checks on grant notify arguments
The notify offset and event channels are both unsigned variables, so testing for >= 0 will not correctly detect the use of -1 to indicate the field is unused. Remove the useless comparison and replace with correct range checks or comparisons to -1. Reported-by: Anil Madhavapeddy <anil@recoil.org> Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
1 parent
06be13898b
commit
dc52d92824
1 file changed
+3
-3
@@ -566,7 +566,7 @@ static void *linux_gnttab_grant_map(xc_gnttab *xch, xc_osdep_handle h,
|
||||
struct ioctl_gntdev_unmap_notify notify;
|
||||
notify.index = map->index;
|
||||
notify.action = 0;
|
||||
if (notify_offset >= 0 && notify_offset < XC_PAGE_SIZE * count) {
|
||||
if (notify_offset < XC_PAGE_SIZE * count) {
|
||||
notify.index += notify_offset;
|
||||
notify.action |= UNMAP_NOTIFY_CLEAR_BYTE;
|
||||
}
|
||||
@@ -708,11 +708,11 @@ static void *linux_gntshr_share_pages(xc_gntshr *xch, xc_osdep_handle h,
|
||||
|
||||
notify.index = gref_info->index;
|
||||
notify.action = 0;
|
||||
if (notify_offset >= 0) {
|
||||
if (notify_offset < XC_PAGE_SIZE * count) {
|
||||
notify.index += notify_offset;
|
||||
notify.action |= UNMAP_NOTIFY_CLEAR_BYTE;
|
||||
}
|
||||
if (notify_port >= 0) {
|
||||
if (notify_port != -1) {
|
||||
notify.event_channel_port = notify_port;
|
||||
notify.action |= UNMAP_NOTIFY_SEND_EVENT;
|
||||
}
|
||||
|
||||