Skip to content

Commit

Permalink
vfio-pci: Fix buffer overfill
Browse files Browse the repository at this point in the history
A read from a range hidden from the user (ex. MSI-X vector table)
attempts to fill the user buffer up to the end of the excluded range
instead of up to the requested count.  Fix it.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Cc: stable@vger.kernel.org
  • Loading branch information
Alex Williamson committed Jan 15, 2013
1 parent 406089d commit ec1287e
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/vfio/pci/vfio_pci_rdwr.c
Original file line number Diff line number Diff line change
Expand Up @@ -240,17 +240,17 @@ ssize_t vfio_pci_mem_readwrite(struct vfio_pci_device *vdev, char __user *buf,
filled = 1;
} else {
/* Drop writes, fill reads with FF */
filled = min((size_t)(x_end - pos), count);
if (!iswrite) {
char val = 0xFF;
size_t i;

for (i = 0; i < x_end - pos; i++) {
for (i = 0; i < filled; i++) {
if (put_user(val, buf + i))
goto out;
}
}

filled = x_end - pos;
}

count -= filled;
Expand Down

0 comments on commit ec1287e

Please sign in to comment.