Skip to content

Commit

Permalink
2014-03-12 Paul Pluzhnikov <ppluzhnikov@google.com>
Browse files Browse the repository at this point in the history
	[BZ #16381]

	* elf/Makefile (tests): Add tst-pie2.
        (tests-pie): Add tst-pie2.
	* elf/tst-pie2.c: New file.
	* elf/dl-load.c (_dl_map_object_from_fd): Assert correct l_type
	for ET_EXEC.
	* elf/rtld.c (map_doit): Load executable as lt_executable.
	(dl_main): Likewise.
  • Loading branch information
Paul Pluzhnikov committed Mar 12, 2014
1 parent abe6d90 commit 798212a
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 9 deletions.
12 changes: 12 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
2014-03-12 Paul Pluzhnikov <ppluzhnikov@google.com>

[BZ #16381]

* elf/Makefile (tests): Add tst-pie2.
(tests-pie): Add tst-pie2.
* elf/tst-pie2.c: New file.
* elf/dl-load.c (_dl_map_object_from_fd): Assert correct l_type
for ET_EXEC.
* elf/rtld.c (map_doit): Load executable as lt_executable.
(dl_main): Likewise.

2014-03-12 Joseph Myers <joseph@codesourcery.com>

[BZ #16642]
Expand Down
6 changes: 3 additions & 3 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ Version 2.19
16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112, 16143, 16144,
16146, 16150, 16151, 16153, 16167, 16169, 16172, 16195, 16214, 16245,
16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337, 16338,
16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384, 16385, 16386,
16387, 16390, 16394, 16398, 16400, 16407, 16408, 16414, 16430, 16431,
16453, 16474, 16506, 16510, 16529
16356, 16365, 16366, 16369, 16372, 16375, 16379, 16381, 16384, 16385,
16386, 16387, 16390, 16394, 16398, 16400, 16407, 16408, 16414, 16430,
16431, 16453, 16474, 16506, 16510, 16529

* Slovenian translations for glibc messages have been contributed by the
Translation Project's Slovenian team of translators.
Expand Down
5 changes: 3 additions & 2 deletions elf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,8 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
tst-array5dep tst-null-argv-lib
ifeq (yesyes,$(have-fpie)$(build-shared))
modules-names += tst-piemod1
tests += tst-pie1
tests-pie += tst-pie1
tests += tst-pie1 tst-pie2
tests-pie += tst-pie1 tst-pie2
endif
modules-execstack-yes = tst-execstack-mod
extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
Expand Down Expand Up @@ -901,6 +901,7 @@ $(objpfx)tst-array5-static-cmp.out: tst-array5-static.exp \
$(evaluate-test)

CFLAGS-tst-pie1.c += $(pie-ccflag)
CFLAGS-tst-pie2.c += $(pie-ccflag)

$(objpfx)tst-pie1: $(objpfx)tst-piemod1.so

Expand Down
4 changes: 2 additions & 2 deletions elf/dl-load.c
Original file line number Diff line number Diff line change
Expand Up @@ -1534,8 +1534,8 @@ cannot enable executable stack as shared object requires");
/* Signal that we closed the file. */
fd = -1;

if (l->l_type == lt_library && type == ET_EXEC)
l->l_type = lt_executable;
/* If this is ET_EXEC, we should have loaded it as lt_executable. */
assert (type != ET_EXEC || l->l_type == lt_executable);

l->l_entry += l->l_addr;

Expand Down
5 changes: 3 additions & 2 deletions elf/rtld.c
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,8 @@ static void
map_doit (void *a)
{
struct map_args *args = (struct map_args *) a;
args->map = _dl_map_object (args->loader, args->str, lt_library, 0,
int type = (args->mode == __RTLD_OPENEXEC) ? lt_executable : lt_library;
args->map = _dl_map_object (args->loader, args->str, type, 0,
args->mode, LM_ID_BASE);
}

Expand Down Expand Up @@ -1075,7 +1076,7 @@ of this helper program; chances are you did not intend to run this program.\n\
else
{
HP_TIMING_NOW (start);
_dl_map_object (NULL, rtld_progname, lt_library, 0,
_dl_map_object (NULL, rtld_progname, lt_executable, 0,
__RTLD_OPENEXEC, LM_ID_BASE);
HP_TIMING_NOW (stop);

Expand Down

0 comments on commit 798212a

Please sign in to comment.