|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |