aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Deegan <tim@xen.org>2013-02-22 13:58:04 +0100
committerJan Beulich <jbeulich@suse.com>2013-02-22 13:58:04 +0100
commitc705547372325f22dcc8757d63d6d8494edf53ab (patch)
tree92f66ce101242ee483b06026c8b862d87c86f68c
parent020aedd5594c6842ba42cb942020b20bf7eab455 (diff)
downloadxen-c705547372325f22dcc8757d63d6d8494edf53ab.tar.gz
xen-c705547372325f22dcc8757d63d6d8494edf53ab.tar.bz2
xen-c705547372325f22dcc8757d63d6d8494edf53ab.zip
xenoprof: avoid division by 0
Signed-off-by: Tim Deegan <tim@xen.org> Acked-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> master changeset: 085f1f2d3aee1a35dfc7ca2f4423e51fa654010c master date: 2013-02-15 09:42:02 +0100
-rw-r--r--xen/common/xenoprof.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/xen/common/xenoprof.c b/xen/common/xenoprof.c
index ea4ebf1e16..6d34418bce 100644
--- a/xen/common/xenoprof.c
+++ b/xen/common/xenoprof.c
@@ -192,6 +192,13 @@ static int alloc_xenoprof_struct(
unsigned max_max_samples;
int i;
+ nvcpu = 0;
+ for_each_vcpu ( d, v )
+ nvcpu++;
+
+ if ( !nvcpu )
+ return -EINVAL;
+
d->xenoprof = xmalloc(struct xenoprof);
if ( d->xenoprof == NULL )
@@ -213,10 +220,6 @@ static int alloc_xenoprof_struct(
memset(d->xenoprof->vcpu, 0, d->max_vcpus * sizeof(*d->xenoprof->vcpu));
- nvcpu = 0;
- for_each_vcpu ( d, v )
- nvcpu++;
-
bufsize = sizeof(struct xenoprof_buf);
i = sizeof(struct event_log);
#ifdef CONFIG_COMPAT