]> git.ipfire.org Git - thirdparty/glibc.git/commit
[BZ #19129][ARM] Fix _dl_tlsdesc_resolve_hold to save r0
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Wed, 14 Oct 2015 15:58:41 +0000 (16:58 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Wed, 14 Oct 2015 16:01:12 +0000 (17:01 +0100)
commit1fae5a6800b07d0a8225664ac65a628bbe98cae7
treea56d1b35fec55a7326d7bee2dfea7a9fd57396b1
parentf45e45a3e07ccd555a3130a9413fcebe6d8f5213
[BZ #19129][ARM] Fix _dl_tlsdesc_resolve_hold to save r0

_dl_tlsdesc_resolve_hold calls into a C function that clobbers r0,
but it assumes the original argument is still in r0 after the call.
This can cause crash in case of concurrent TLS access when TLSDESC
is in use (-mtls-dialect=gnu2).

Run into this while fixing BZ 18572.

Both r0 and r1 are saved/restored so the stack remains 8 byte aligned.

[BZ #19129]
* sysdeps/arm/dl-tlsdesc.S (_dl_tlsdesc_resolve_hold): Save and restore
r0 and r1.
ChangeLog
NEWS
sysdeps/arm/dl-tlsdesc.S