From c34a013a0f5305b5a0d94c7b073a03e309f536b9 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 22 Jun 2009 23:09:55 +0000 Subject: [PATCH] ispace offset needs to account for size of header git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1928 42af7a65-404d-4744-a932-0658087f49c3 --- binfmt/libnxflat/libnxflat_bind.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/binfmt/libnxflat/libnxflat_bind.c b/binfmt/libnxflat/libnxflat_bind.c index 721e4bdb46..9ed623397b 100644 --- a/binfmt/libnxflat/libnxflat_bind.c +++ b/binfmt/libnxflat/libnxflat_bind.c @@ -87,13 +87,13 @@ static inline int nxflat_bindrel32i(FAR struct nxflat_loadinfo_s *loadinfo, uint32 *addr; bvdbg("NXFLAT_RELOC_TYPE_REL32I Offset: %08x I-Space: %p\n", - offset, loadinfo->ispace); + offset, loadinfo->ispace + sizeof(struct nxflat_hdr_s)); if (offset < loadinfo->dsize) { addr = (uint32*)(offset + loadinfo->dspace->region); bvdbg(" Before: %08x\n", *addr); - *addr += (uint32)(loadinfo->ispace); + *addr += (uint32)(loadinfo->ispace + sizeof(struct nxflat_hdr_s)); bvdbg(" After: %08x\n", *addr); return OK; } @@ -321,7 +321,7 @@ static inline int nxflat_bindimports(FAR struct nxflat_loadinfo_s *loadinfo, offset = imports[i].i_funcname; DEBUGASSERT(offset < loadinfo->isize); - symname = (char*)(offset + loadinfo->ispace); + symname = (char*)(offset + loadinfo->ispace + sizeof(struct nxflat_hdr_s)); /* Find the exported symbol value for this this symbol name. */