From e31d4781c0e04bec01135dea0cb7d634ee035cd3 Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Thu, 7 Mar 2013 16:20:50 +0000 Subject: tools/xenconsoled: Initialise pointers before trying to use them This is a regression introduced by "Switch from select() to poll() in xenconsoled's IO loop." hg c/s 26405:7359c3122c5d git cc5434c933153c4b8812d1df901f8915c22830a8 which results in reliable segfaults during VM power operations. Switch to calloc(3) in an effort to avoid similar problems with changes in the future. Signed-off-by: Marcus Granado Signed-off-by: Andrew Cooper --- tools/console/daemon/io.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) (limited to 'tools/console') diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c index 176ac3cc53..50f91b58dd 100644 --- a/tools/console/daemon/io.c +++ b/tools/console/daemon/io.c @@ -651,7 +651,7 @@ static struct domain *create_domain(int domid) return NULL; } - dom = (struct domain *)malloc(sizeof(struct domain)); + dom = calloc(1, sizeof *dom); if (dom == NULL) { dolog(LOG_ERR, "Out of memory %s:%s():L%d", __FILE__, __FUNCTION__, __LINE__); @@ -672,21 +672,11 @@ static struct domain *create_domain(int domid) dom->slave_fd = -1; dom->log_fd = -1; - dom->is_dead = false; - dom->buffer.data = 0; - dom->buffer.consumed = 0; - dom->buffer.size = 0; - dom->buffer.capacity = 0; - dom->buffer.max_capacity = 0; - dom->event_count = 0; dom->next_period = ((long long)ts.tv_sec * 1000) + (ts.tv_nsec / 1000000) + RATE_LIMIT_PERIOD; - dom->next = NULL; dom->ring_ref = -1; dom->local_port = -1; dom->remote_port = -1; - dom->interface = NULL; - dom->xce_handle = NULL; if (!watch_domain(dom, true)) goto out; -- cgit v1.2.3