]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
memory: fix off-by-one error in memory_region_notify_one()
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Tue, 10 Oct 2017 09:42:47 +0000 (11:42 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 5 Dec 2017 04:42:41 +0000 (22:42 -0600)
This patch fixes an off-by-one error that could lead to the
notifyee to receive notifications for ranges it is not
registered to.

The bug has been spotted by code review.

Fixes: bd2bfa4c52e5 ("memory: introduce memory_region_notify_one()")
Cc: qemu-stable@nongnu.org
Cc: Peter Xu <peterx@redhat.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Message-Id: <20171010094247.10173-4-maxime.coquelin@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit b021d1c04452276f4926eed2d104ccbd1037a6e1)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
memory.c

index d90853855b88d72ad262ded1e08ae4b467122890..d05a80aba5260063606af77ebf34b328771b5325 100644 (file)
--- a/memory.c
+++ b/memory.c
@@ -1891,7 +1891,7 @@ void memory_region_notify_one(IOMMUNotifier *notifier,
      * Skip the notification if the notification does not overlap
      * with registered range.
      */
-    if (notifier->start > entry->iova + entry->addr_mask + 1 ||
+    if (notifier->start > entry->iova + entry->addr_mask ||
         notifier->end < entry->iova) {
         return;
     }