[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 1/3] xsm/xen_version: Add XSM for the xen_version hypercall.
> >> > The subops for XENVER_[compile_info|changeset|commandline| > >> > extraversion] are now priviliged operations. To not break > >> > guests we still return an string - but it is just '<denied>'. > >> > >> And I continue to question at least the extraversion part. > > > > How about I remove the extraversion part from this patch and we can > > discuss putting 'extraversion' in the blacklist around another patch. > > Yes, that'd be a step towards me agreeing with the change. I'm > not necessarily saying that's going to be enough, since I said "at > least", i.e. I continue to wonder how relevant it really is to hide > changeset and compile info (fwiw I agree with hiding the command > line). I made it now only return '<denied>' for the XENVER_commandline. > > >> > The rest: XENVER_[version|capabilities| > >> > parameters|get_features|page_size|guest_handle] behave > >> > as before - allowed by default for all guests. > >> > > >> > This is with the XSM default policy and with the dummy ones. > >> > >> And with a non-default policy you now ignore one of the latter > >> ops to also get denied. > > > > No, but that is due to the 'deny' being only checked for certain subops. > > To me this reply seems contradictory in itself: The "no" doesn't > seem to match up with the rest. > > > I think what you are saying is that for XENVER_[version|capabilities| > > parameters|get_features|page_size|guest_handle] we should not have any > > XSM checks as they serve no purpose (which is what I had in the earlier > > versions of this patch). However Andrew mentioned that he would > > like _ALL_ of the sub-ops to be checked for. > > And I agree with Andrew, hence my earlier comment above (with > the reply I can't really make sense of). I am all confused now. There are two parts here: a) The XSM checks - which allow the XENVER_version..XENVER_guest_handle without any hinderance. For XENVER_commandline and XENVER_buildid they are evaluated. b) Acting on the XSM check. For most of them we cannot actually return -EFAULT and MUST return either an valid value or some form of a string. The ones for which we could return '<denied>' were changeset, compile_info, commandline, extraversion. To make it simpler we only do it for commandline. In essence we have an XSM check which is ignored by all XENVER_ subops except commandline (and build_id in later patch). I think both of you are OK with that? > > >> > @@ -354,10 +356,17 @@ DO(xen_version)(int cmd, > >> > XEN_GUEST_HANDLE_PARAM(void) arg) > >> > return 0; > >> > > >> > case XENVER_commandline: > >> > - if ( copy_to_guest(arg, saved_cmdline, > >> > ARRAY_SIZE(saved_cmdline)) ) > >> > + { > >> > + size_t len = ARRAY_SIZE(saved_cmdline); > >> > + > >> > + if ( deny ) > >> > + len = strlen(xen_deny()); > >> > >> +1 (or else you fail to nul-terminate the output). > > > > Nice spotting! > > Perhaps modifying xen_deny() to be: > > > > const char *xen_deny(void) > > { > > return "<denied>\0"; > > } > > > > Would be better? > > This would just add a second NUL at the end, without altering what Right. Sorry about that - the patch I had sent still includes the \0. > strlen() returns on that string > > Jan > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |