diff options
-rw-r--r-- | nuttx/binfmt/libelf/libelf_load.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/nuttx/binfmt/libelf/libelf_load.c b/nuttx/binfmt/libelf/libelf_load.c index 75ecb30fc..11d054a94 100644 --- a/nuttx/binfmt/libelf/libelf_load.c +++ b/nuttx/binfmt/libelf/libelf_load.c @@ -43,6 +43,7 @@ #include <stdint.h> #include <stdlib.h> +#include <string.h> #include <unistd.h> #include <elf32.h> #include <assert.h> @@ -200,6 +201,15 @@ static inline int elf_loadfile(FAR struct elf_loadinfo_s *loadinfo) } } + /* If there is no data in an allocated section, then the allocated + * section must be cleared. + */ + + else + { + memset(*pptr, 0, shdr->sh_size); + } + /* Update sh_addr to point to copy in memory */ bvdbg("%d. %08lx->%08lx\n", i, |