Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 27 Oct 2003 01:36:12 +0000 (01:36 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 27 Oct 2003 01:36:12 +0000 (01:36 +0000)
* 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

ChangeLog
elf/dl-load.c
elf/rtld.c
include/dlfcn.h
posix/globtest.sh

index 924bd00..04bc03b 100644 (file)
--- a/ChangeLog
+++ b/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>
index 0b6e96f..ecf2ee8 100644 (file)
@@ -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;
index 7c4d961..344fede 100644 (file)
@@ -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);
index 31231cb..c87b6d9 100644 (file)
@@ -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,
index a0c03d3..09af6f7 100755 (executable)
@@ -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