Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 3 May 1999 18:16:18 +0000 (18:16 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 3 May 1999 18:16:18 +0000 (18:16 +0000)
* elf/dl-load.c (expand_dynamic_string_token): Don't expand
$ORIGIN for SUID binaries.

ChangeLog
elf/dl-load.c

index 383622f..4a65061 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 1999-05-03  Ulrich Drepper  <drepper@cygnus.com>
 
+       * elf/dl-load.c (expand_dynamic_string_token): Don't expand
+       $ORIGIN for SUID binaries.
+
        * sysdeps/unix/sysv/linux/arm/Dist: Add sigrestorer.S.
 
 1999-05-02  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
index d9645e6..c1d1d7e 100644 (file)
@@ -161,7 +161,9 @@ expand_dynamic_string_token (struct link_map *l, const char *s)
     {
       size_t len = 1;
 
-      if (((strncmp (&sf[1], "ORIGIN", 6) == 0 && (len = 7) != 0)
+      /* $ORIGIN is not expanded for SUID/GUID programs.  */
+      if (((!__libc_enable_secure
+           && strncmp (&sf[1], "ORIGIN", 6) == 0 && (len = 7) != 0)
           || (strncmp (&sf[1], "PLATFORM", 8) == 0 && (len = 9) != 0))
          && (s[len] == '\0' || s[len] == '/' || s[len] == ':'))
        ++cnt;
@@ -209,7 +211,8 @@ expand_dynamic_string_token (struct link_map *l, const char *s)
          const char *repl;
          size_t len;
 
-         if (((strncmp (&s[1], "ORIGIN", 6) == 0 && (len = 7) != 0)
+         if (((!__libc_enable_secure
+               && strncmp (&s[1], "ORIGIN", 6) == 0 && (len = 7) != 0)
               || (strncmp (&s[1], "PLATFORM", 8) == 0 && (len = 9) != 0))
              && (s[len] == '\0' || s[len] == '/' || s[len] == ':'))
            {