about summary refs log tree commit diff
path: root/elf/dl-load.c
diff options
context:
space:
mode:
authorCarlos O'Donell <carlos@redhat.com>2018-06-12 23:31:02 -0400
committerCarlos O'Donell <carlos@redhat.com>2018-06-12 23:35:06 -0400
commita745c837cb51c2efe8900740548cb68ec2a2f7ab (patch)
treeabe09c3ad30fe4bd4a20f818ade11453334a6777 /elf/dl-load.c
parent35df5a77f3ad2a35761631928440d2994a9e4bc5 (diff)
downloadglibc-a745c837cb51c2efe8900740548cb68ec2a2f7ab.tar.gz
glibc-a745c837cb51c2efe8900740548cb68ec2a2f7ab.tar.xz
glibc-a745c837cb51c2efe8900740548cb68ec2a2f7ab.zip
Fix comments in _dl_dst_count and _dl_dst_substitute.
The comments in _dl_dst_count is adjusted to match what the code does
which is count DSTs from the start of the string. With the removal of
DL_DST_COUNT we no longer accept an input that starts at the first $.

In _dl_dst_substitute we adjust the comment to indicate that both
conditions must be true for the SUID/SGID $ORIGIN exception.
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r--elf/dl-load.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index e81601f36d..09185ab68d 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -219,11 +219,11 @@ is_dst (const char *input, const char *ref)
     return rlen;
 }
 
-/* INPUT is the start of a DST sequence at the first '$' occurrence.
-   If there is a DST we call into _dl_dst_count to count the number of
-   DSTs.  We count all known DSTs regardless of __libc_enable_secure;
-   the caller is responsible for enforcing the security of the
-   substitution rules (usually _dl_dst_substitute).  */
+/* INPUT should be the start of a path e.g DT_RPATH or name e.g.
+   DT_NEEDED.  The return value is the number of known DSTs found.  We
+   count all known DSTs regardless of __libc_enable_secure; the caller
+   is responsible for enforcing the security of the substitution rules
+   (usually _dl_dst_substitute).  */
 size_t
 _dl_dst_count (const char *input)
 {
@@ -292,7 +292,9 @@ _dl_dst_substitute (struct link_map *l, const char *input, char *result)
 		   * $ORIGIN appears as the first path element, and is
 		     the only string in the path or is immediately
 		     followed by a path separator and the rest of the
-		     path.
+		     path,
+
+		   and ...
 
 		   * The path is rooted in a trusted directory.