From: Corey Bryant Date: Thu, 18 Oct 2012 19:19:33 +0000 (-0400) Subject: monitor: Prevent removing fd from set during init X-Git-Tag: qemu-xen-4.3.0-rc1~165^2~18 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=ebe52b592d;p=qemu-xen.git monitor: Prevent removing fd from set during init If an fd is added to an fd set via the command line, and it is not referenced by another command line option (ie. -drive), then clean it up after QEMU initialization is complete. Signed-off-by: Corey Bryant Reviewed-by: Eric Blake Signed-off-by: Kevin Wolf --- diff --git a/monitor.c b/monitor.c index 6e990496a8..1d3dd9aac1 100644 --- a/monitor.c +++ b/monitor.c @@ -2105,8 +2105,9 @@ static void monitor_fdset_cleanup(MonFdset *mon_fdset) MonFdsetFd *mon_fdset_fd_next; QLIST_FOREACH_SAFE(mon_fdset_fd, &mon_fdset->fds, next, mon_fdset_fd_next) { - if (mon_fdset_fd->removed || - (QLIST_EMPTY(&mon_fdset->dup_fds) && mon_refcount == 0)) { + if ((mon_fdset_fd->removed || + (QLIST_EMPTY(&mon_fdset->dup_fds) && mon_refcount == 0)) && + runstate_is_running()) { close(mon_fdset_fd->fd); g_free(mon_fdset_fd->opaque); QLIST_REMOVE(mon_fdset_fd, next);