[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Revert 23757:f5176c177b99 "xenstored: allow guests to reintroduce themselves"
# HG changeset patch # User Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> # Date 1312908496 -3600 # Node ID aca07ff1f0a59cc7ebb5ef76875229b7e99ba3ff # Parent ea18090ab6e3cb3c69d232ec0865589688db3f81 Revert 23757:f5176c177b99 "xenstored: allow guests to reintroduce themselves" This patch seems to have been applied by mistake, despite adverse comments on the list and a lack of an appropriate ack. Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- diff -r ea18090ab6e3 -r aca07ff1f0a5 tools/xenstore/xenstored_domain.c --- a/tools/xenstore/xenstored_domain.c Tue Aug 09 11:33:40 2011 +0100 +++ b/tools/xenstore/xenstored_domain.c Tue Aug 09 17:48:16 2011 +0100 @@ -315,7 +315,7 @@ { struct domain *domain; char *vec[3]; - unsigned int domid, target; + unsigned int domid; unsigned long mfn; evtchn_port_t port; int rc; @@ -326,7 +326,7 @@ return; } - if (!conn->can_write) { + if (conn->id != 0 || !conn->can_write) { send_error(conn, EACCES); return; } @@ -340,26 +340,19 @@ send_error(conn, EINVAL); return; } - /* Allow guest to reset all watches */ - if (domid != DOMID_SELF && conn->id != 0) { - send_error(conn, EACCES); - return; - } - target = domid == DOMID_SELF ? conn->id : domid; - - domain = find_domain_by_domid(target); + domain = find_domain_by_domid(domid); if (domain == NULL) { interface = xc_map_foreign_range( - *xc_handle, target, + *xc_handle, domid, getpagesize(), PROT_READ|PROT_WRITE, mfn); if (!interface) { send_error(conn, errno); return; } /* Hang domain off "in" until we're finished. */ - domain = new_domain(in, target, port); + domain = new_domain(in, domid, port); if (!domain) { munmap(interface, getpagesize()); send_error(conn, errno); @@ -372,11 +365,11 @@ talloc_steal(domain->conn, domain); fire_watches(NULL, "@introduceDomain", false); - } else if ((domain->mfn == mfn) && ((domain->conn != conn) || domid == DOMID_SELF)) { + } else if ((domain->mfn == mfn) && (domain->conn != conn)) { /* Use XS_INTRODUCE for recreating the xenbus event-channel. */ if (domain->port) xc_evtchn_unbind(xce_handle, domain->port); - rc = xc_evtchn_bind_interdomain(xce_handle, target, port); + rc = xc_evtchn_bind_interdomain(xce_handle, domid, port); domain->port = (rc == -1) ? 0 : rc; domain->remote_port = port; } else { _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |