[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 6/9] livepatch: Add parsing for the symbol+0x<offset>
On 09/08/2016 10:22 AM, Konrad Rzeszutek Wilk wrote: On Wed, Sep 07, 2016 at 02:10:43AM -0600, Jan Beulich wrote:On 06.09.16 at 21:56, <konrad.wilk@xxxxxxxxxx> wrote:On Wed, Aug 24, 2016 at 03:08:01AM -0600, Jan Beulich wrote:On 24.08.16 at 04:22, <konrad.wilk@xxxxxxxxxx> wrote:--- a/xen/common/livepatch.c +++ b/xen/common/livepatch.c @@ -237,13 +237,34 @@ static const char *livepatch_symbols_lookup(unsigned long addr, static int resolve_old_address(struct livepatch_func *f, const struct livepatch_elf *elf) { + const char *s; + char *plus = NULL;Pointless initializer.We need that otherwise this part (which is at the bottom of this function): if ( plus ) { *plus = '+'; f->old_addr += offset; } May be invoked for symbols that that don't have the '+' in them.I don't see how it would. This plus = strchr(f->name, '+'); comes ahead of any paths leading to the code you quote.Ah. Stale information - the earlier patch had 'slash' and 'plus' variables to look for - and that was why I needed it. But with the code you are quoting - it is not needed.+ /* +<offset> */ + plus = strchr(f->name, '+');And I think you should prefer using the local variable here.<nods>Furthermore you're losing const here - does f->name really point to memory that doesn't get mapped r/o?Yes. The 'struct livepatch_func' contains the the ->opaque array of 31 bytes (from which we use 5 bytes) which the hypervisor uses to stash the original instructions.How does the patch name end up in (5 bytes of) the opaque field?I was (ineptly) saying that the struct livepatch_func has fields that are modified, hence it ends up in .data section. Wait a minute. The f->name should have a relocation to point to .rodata instead of .data! And that should have crashed when I modified it. livepatch-build-tools puts the function names in a read only section (.livepatch.strings), so the approach of fiddling with f->name probably needs to change. -- Ross Lagerwall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |