Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update.
	* include/dlfcn.h (__RTLD_OPENEXEC): Define.
	* elf/dl-load.c (_dl_map_object_from_fd): Don't allow loading
	executables unless __RTLD_OPENEXEC flag is present.
	* elf/rtld.c (dl_main): Pass __RTLD_OPENEXEC flag to
	_dl_map_object when loading the executable.

	reverse lookup format for IPv6 addresses is using bitstring and
	* resolv/ns_name.c: Implement encoding and decoding bitstring in
  • Loading branch information
Ulrich Drepper committed Oct 27, 2003
1 parent 98d2ca3 commit 5a4b507
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 4 deletions.
10 changes: 8 additions & 2 deletions ChangeLog
@@ -1,13 +1,19 @@
2003-10-26 Ulrich Drepper <drepper@redhat.com>

* include/dlfcn.h (__RTLD_OPENEXEC): Define.
* elf/dl-load.c (_dl_map_object_from_fd): Don't allow loading
executables unless __RTLD_OPENEXEC flag is present.
* elf/rtld.c (dl_main): Pass __RTLD_OPENEXEC flag to
_dl_map_object when loading the executable.

* sysdeps/generic/glob.c (glob): Handle GLOB_BRACE and escaping
correctly.
* posix/globtest.sh: Add tests for GLOB_BRACE and escaping.

* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Default
reverse lookup format for IPv6 addresses is using bitfields and
reverse lookup format for IPv6 addresses is using bitstring and
.ip6.arpa suffix.
* resolv/ns_name.c: Implement encoding and decoding bitfields in
* resolv/ns_name.c: Implement encoding and decoding bitstring in
hex format.

2003-10-23 Jakub Jelinek <jakub@redhat.com>
Expand Down
2 changes: 1 addition & 1 deletion elf/dl-load.c
Expand Up @@ -1129,7 +1129,7 @@ cannot allocate TLS data structures for initial thread");
{
/* This object is loaded at a fixed address. This must never
happen for objects loaded with dlopen(). */
if (__builtin_expect (mode & __RTLD_DLOPEN, 0))
if (__builtin_expect ((mode & __RTLD_OPENEXEC) == 0, 0))
{
errstring = N_("cannot dynamically load executable");
goto call_lose;
Expand Down
3 changes: 2 additions & 1 deletion elf/rtld.c
Expand Up @@ -787,7 +787,8 @@ of this helper program; chances are you did not intend to run this program.\n\
else
{
HP_TIMING_NOW (start);
INTUSE(_dl_map_object) (NULL, rtld_progname, 0, lt_library, 0, 0);
INTUSE(_dl_map_object) (NULL, rtld_progname, 0, lt_library, 0,
__RTLD_OPENEXEC);
HP_TIMING_NOW (stop);

HP_TIMING_DIFF (load_time, start, stop);
Expand Down
1 change: 1 addition & 0 deletions include/dlfcn.h
Expand Up @@ -5,6 +5,7 @@
/* Internally used flag. */
#define __RTLD_DLOPEN 0x80000000
#define __RTLD_SPROF 0x40000000
#define __RTLD_OPENEXEC 0x20000000

/* Now define the internal interfaces. */
extern void *__dlvsym (void *__handle, __const char *__name,
Expand Down
19 changes: 19 additions & 0 deletions posix/globtest.sh
Expand Up @@ -687,6 +687,25 @@ if test $failed -ne 0; then
result=1
fi

# Test [[:punct:]] not matching leading period.
failed=0
${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
${common_objpfx}posix/globtest -c "$testdir" "[[:punct:]]*" |
sort > $testout
cat <<"EOF" | $CMP - $testout >> $logfile || failed=1
`*file6'
`-file3'
`\file9b\'
`\{file8\}'
`\{file9\,file9b\}'
`{file7,}'
`~file4'
EOF
if test $failed -ne 0; then
echo "Punct test failed" >> $logfile
result=1
fi

if test $result -eq 0; then
chmod 777 $testdir/noread
rm -fr $testdir $testout
Expand Down

0 comments on commit 5a4b507

Please sign in to comment.