[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 26/28] xsplice: Prevent duplicate payloads from being loaded.
>>> On 24.03.16 at 21:00, <konrad.wilk@xxxxxxxxxx> wrote: > --- a/xen/common/xsplice.c > +++ b/xen/common/xsplice.c > @@ -566,6 +566,27 @@ static int prepare_payload(struct payload *payload, > if ( !payload->id.len || !payload->id.p ) > return -EINVAL; > } > + /* Make sure it is not a duplicate. */ > + if ( payload->id.len ) The conditional is pointless considering the one visible in context above. > + { > + struct payload *data; > + > + spin_lock_recursive(&payload_lock); > + list_for_each_entry ( data, &payload_list, list ) > + { > + /* No way payload is on the list. */ > + ASSERT( data != payload ); > + if ( data->id.len && > + !memcmp(data->id.p, payload->id.p, data->id.len) ) > + { > + spin_unlock_recursive(&payload_lock); > + dprintk(XENLOG_DEBUG, "%s%s: Already loaded as %s!\n", > + XSPLICE, elf->name, data->name); > + return -EEXIST; > + } > + } > + spin_unlock_recursive(&payload_lock); Similar question as asked elsewhere - with the lock getting dropped here, how is the "no duplicate" state going to be ensured by the time you actually load and insert this payload? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |