Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21643e69 authored by Dan Carpenter's avatar Dan Carpenter Committed by Konrad Rzeszutek Wilk
Browse files

xen-gntalloc: integer overflow in gntalloc_ioctl_alloc()



On 32 bit systems a high value of op.count could lead to an integer
overflow in the kzalloc() and gref_ids would be smaller than
expected.  If the you triggered another integer overflow in
"if (gref_size + op.count > limit)" then you'd probably get memory
corruption inside add_grefs().

CC: stable@kernel.org
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent fc6e0c3b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -280,7 +280,7 @@ static long gntalloc_ioctl_alloc(struct gntalloc_file_private_data *priv,
		goto out;
	}

	gref_ids = kzalloc(sizeof(gref_ids[0]) * op.count, GFP_TEMPORARY);
	gref_ids = kcalloc(op.count, sizeof(gref_ids[0]), GFP_TEMPORARY);
	if (!gref_ids) {
		rc = -ENOMEM;
		goto out;