[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] xen/sysctl: fix XEN_SYSCTL_getdomaininfolist handling with XSM
On 5/2/23 09:10, Roger Pau Monné wrote: On Tue, May 02, 2023 at 09:03:00AM -0400, Daniel P. Smith wrote:On 4/30/23 10:46, Juergen Gross wrote:In case XSM is active, the handling of XEN_SYSCTL_getdomaininfolist can fail if the last domain scanned isn't allowed to be accessed by the calling domain (i.e. xsm_getdomaininfo(XSM_HOOK, d) is failing). Fix that by just ignoring scanned domains where xsm_getdomaininfo() is returning an error, like it is effectively done when such a situation occurs for a domain not being the last one scanned. Fixes: d046f361dc93 ("Xen Security Modules: XSM") Signed-off-by: Juergen Gross <jgross@xxxxxxxx> --- xen/common/sysctl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c index 02505ab044..0cbfe8bd44 100644 --- a/xen/common/sysctl.c +++ b/xen/common/sysctl.c @@ -89,8 +89,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl) if ( num_domains == op->u.getdomaininfolist.max_domains ) break; - ret = xsm_getdomaininfo(XSM_HOOK, d); - if ( ret ) + if ( xsm_getdomaininfo(XSM_HOOK, d) ) continue; getdomaininfo(d, &info);This change does not match the commit message. This says it fixes an issue, but unless I am totally missing something, this change is nothing more than formatting that drops the use of an intermediate variable. Please feel free to correct me if I am wrong here, otherwise I believe the commit message should be changed to reflect the code change.By dropping that intermediate variable it prevents returning an error as the result of the hypercall if xsm_getdomaininfo() for the last domain fails. Ah, understood. I missed ret is state tracking. Note that xsm_getdomaininfo() failing for other domains not the last one don't cause the return value of the hypercall to be an error code, because the variable containing the error gets overwritten by further loops. In the end, this is just addressing an issue that has not been seen by anyone and happened upon while debugging another issue. V/r, DPS
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |