aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_linux_osdep.c
diff options
context:
space:
mode:
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>2011-12-01 18:20:12 +0000
committerDaniel De Graaf <dgdegra@tycho.nsa.gov>2011-12-01 18:20:12 +0000
commitdc52d92824439f5259fd24d476ad7ba5e043dd4e (patch)
tree16b497db51de1198657453269e490b3d5d628642 /tools/libxc/xc_linux_osdep.c
parent06be13898b572bc4f5e219153b57cc209ad26aaf (diff)
downloadxen-dc52d92824439f5259fd24d476ad7ba5e043dd4e.tar.gz
xen-dc52d92824439f5259fd24d476ad7ba5e043dd4e.tar.bz2
xen-dc52d92824439f5259fd24d476ad7ba5e043dd4e.zip
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>
Diffstat (limited to 'tools/libxc/xc_linux_osdep.c')
-rw-r--r--tools/libxc/xc_linux_osdep.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c
index 0da20091db..115203ddb4 100644
--- a/tools/libxc/xc_linux_osdep.c
+++ b/tools/libxc/xc_linux_osdep.c
@@ -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;
}