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

Re: [Xen-devel] [PATCH v9 26/27] xsplice: Prevent duplicate payloads from being loaded.



>>> On 25.04.16 at 17:35, <konrad.wilk@xxxxxxxxxx> wrote:
> From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> 
> Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> 
> ---
> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Cc: Jan Beulich <jbeulich@xxxxxxxx>
> Cc: Keir Fraser <keir@xxxxxxx>
> Cc: Tim Deegan <tim@xxxxxxx>
> 
> v6: Drop recursive lock - also now the caller is holding the lock
>     Move the code up in the code above.
> v7: Add Andrew's Reviewed-by
> v9: Add const on struct payload.
>     Check data->id.len != payload->id.len in the loop
> ---
> ---
>  xen/common/xsplice.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/xen/common/xsplice.c b/xen/common/xsplice.c
> index a8b208d..b5e2135 100644
> --- a/xen/common/xsplice.c
> +++ b/xen/common/xsplice.c
> @@ -520,6 +520,8 @@ static int prepare_payload(struct payload *payload,
>      sec = xsplice_elf_sec_by_name(elf, ELF_BUILD_ID_NOTE);
>      if ( sec )
>      {
> +        const struct payload *data;
> +
>          n = sec->load_addr;
>  
>          if ( sec->sec->sh_size <= sizeof(*n) )
> @@ -531,6 +533,20 @@ static int prepare_payload(struct payload *payload,
>  
>          if ( !payload->id.len || !payload->id.p )
>              return -EINVAL;
> +
> +        /* Make sure it is not a duplicate. */
> +        list_for_each_entry ( data, &payload_list, list )
> +        {
> +            /* No way _this_ payload is on the list. */
> +            ASSERT(data != payload);
> +            if ( data->id.len != payload->id.len ||

DYM

            if ( data->id.len == payload->id.len &&

? (I'm sorry for having suggested it the wrong way round in the reply
to v8.1.)

With that fixed
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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