[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v3 15/15] argo: validate hypercall arg structures via compat machinery

>>> On 21.01.19 at 13:03, <JBeulich@xxxxxxxx> wrote:
>>>> On 20.01.19 at 22:18, <christopher.w.clark@xxxxxxxxx> wrote:
>> The "no repeated checks" problem also occurs when another separate
>> struct contains a field of a type that has already been checked:
>> whichever CHECK is performed second will break.
>> eg.
>> typedef struct xen_argo_ring_data_ent
>> {
>>     struct xen_argo_addr ring;
>>     uint16_t flags;
>>     uint16_t pad;
>>     uint32_t space_required;
>>     uint32_t max_message_size;
>> } xen_argo_ring_data_ent_t;
>> also has a field of type xen_argo_addr, which produces CHECK_argo_addr,
>> which then fails because that was already tested in
>> CHECK_argo_send_addr.
> Hmm, I think the mcinfo example above contradicts this, because
> struct mcinfo_common is used by multiple other structures.

Due to

# undef xen_mcinfo_common
# undef CHECK_mcinfo_common
# define CHECK_mcinfo_common         struct mcinfo_common

which I think would be easy enough to use in your case as well
(until we could perhaps get around and address the underlying
issue, albeit it's not really clear to me how that should be done).


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.