diff options
author | Andreas Krebbel <Andreas.Krebbel@de.ibm.com> | 2011-04-17 20:41:45 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-04-17 20:41:45 -0400 |
commit | 1044270502f31134c6a252dfe71ce8f586bc0d00 (patch) | |
tree | 5a5330d763f1de55731db320fce62e0022efb0d5 /sysdeps/s390/s390-32 | |
parent | 7b57bfe5988e476ea40934457dfd1c8a231e2391 (diff) | |
download | glibc-1044270502f31134c6a252dfe71ce8f586bc0d00.tar.gz glibc-1044270502f31134c6a252dfe71ce8f586bc0d00.tar.xz glibc-1044270502f31134c6a252dfe71ce8f586bc0d00.zip |
Skip extra zeroes when searching auxv on s390
Diffstat (limited to 'sysdeps/s390/s390-32')
-rw-r--r-- | sysdeps/s390/s390-32/elf/start.S | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sysdeps/s390/s390-32/elf/start.S b/sysdeps/s390/s390-32/elf/start.S index 8e48abbcc3..c568f824ff 100644 --- a/sysdeps/s390/s390-32/elf/start.S +++ b/sysdeps/s390/s390-32/elf/start.S @@ -75,6 +75,18 @@ _start: ltr %r5,%r5 jne .L12 + /* Usually the auxiliary vector can be expected directly after + the environment variables. But we have to skip extra zeros + because the loader might have removed unsecure variables for + setuid programs. */ + +.L26: l %r5,0(%r6) + la %r6,4(%r6) + ltr %r5,%r5 + jz .L26 + + ahi %r6,-4 + /* Obtain the needed values from the auxiliary vector. */ lhi %r7,16 /* AT_HWCAP */ |