[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 04/11] livepatch/arm[32, 64]: Don't load and crash on livepatches loaded with wrong text alignment.
>>> On 21.09.17 at 00:31, <konrad@xxxxxxxxxx> wrote: > @@ -272,6 +271,16 @@ int arch_livepatch_perform(struct livepatch_elf *elf, > elf->name, symndx); > return -EINVAL; > } > + else if ( (type != R_ARM_ABS32 && type != R_ARM_REL32) /* Only check > code. */ && > + ((uint32_t)dest % sizeof(uint32_t)) ) > + { > + dprintk(XENLOG_ERR, LIVEPATCH "%s: dest=%p (%s) is not aligned > properly!\n", > + elf->name, dest, base->name); > + return -EINVAL; > + } And no similar check being added to ARM64? Looking at that code I also notice that the general "minimum 32-bit width" there is likely wrong for at least ABS16 and PREL16. > --- a/xen/common/livepatch.c > +++ b/xen/common/livepatch.c > @@ -473,6 +473,13 @@ static bool section_ok(const struct livepatch_elf *elf, > return false; > } > > + if ( !arch_livepatch_verify_alignment(sec) ) > + { > + dprintk(XENLOG_ERR, LIVEPATCH "%s: %s text section is not aligned > properly!\n", > + elf->name, sec->name); If you really mean to say "text section" here, then the SHF_EXECINSTR check should move here too. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |