Changeset d91488d in mainline for kernel/generic/src/lib/elf.c


Ignore:
Timestamp:
2018-11-21T09:16:16Z (5 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a91c555f
Parents:
0705fc5
git-author:
Jiri Svoboda <jiri@…> (2018-11-20 20:14:06)
git-committer:
Jiri Svoboda <jiri@…> (2018-11-21 09:16:16)
Message:

Fix endless loop in elf_share() walking the wrong B+tree. Fix ELF areas shared to a different address than in the originating task.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/lib/elf.c

    r0705fc5 rd91488d  
    142142{
    143143        mem_backend_data_t backend_data;
    144         backend_data.elf = elf;
    145         backend_data.segment = entry;
    146144
    147145        if (entry->p_align > 1) {
     
    172170        size_t mem_sz = entry->p_memsz + (entry->p_vaddr - base);
    173171
     172        backend_data.elf_base = base;
     173        backend_data.elf = elf;
     174        backend_data.segment = entry;
     175
    174176        as_area_t *area = as_area_create(as, flags, mem_sz,
    175177            AS_AREA_ATTR_NONE, &elf_backend, &backend_data, &base, 0);
Note: See TracChangeset for help on using the changeset viewer.