|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] sysctl: use xmalloc_array() for XEN_SYSCTL_page_offline_op
commit 7ad2164e922ebd7ee1543ba76f971cce22c27dc2
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Tue Feb 18 17:52:10 2020 +0100
Commit: Julien Grall <julien@xxxxxxx>
CommitDate: Wed Feb 19 12:35:36 2020 +0000
sysctl: use xmalloc_array() for XEN_SYSCTL_page_offline_op
This is more robust than the raw xmalloc_bytes().
Also add a sanity check on the input page range, to avoid returning
the less applicable -ENOMEM in such cases (and trying the allocation in
the first place).
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
xen/common/sysctl.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
index f88a285e7f..1c6a817476 100644
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
@@ -187,13 +187,17 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t)
u_sysctl)
uint32_t *status, *ptr;
mfn_t mfn;
+ ret = -EINVAL;
+ if ( op->u.page_offline.end < op->u.page_offline.start )
+ break;
+
ret = xsm_page_offline(XSM_HOOK, op->u.page_offline.cmd);
if ( ret )
break;
- ptr = status = xmalloc_bytes( sizeof(uint32_t) *
- (op->u.page_offline.end -
- op->u.page_offline.start + 1));
+ ptr = status = xmalloc_array(uint32_t,
+ (op->u.page_offline.end -
+ op->u.page_offline.start + 1));
if ( !status )
{
dprintk(XENLOG_WARNING, "Out of memory for page offline op\n");
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |