fix crash/misbehavior from oob read in new dynamic tls installation
authorRich Felker <dalias@aerifal.cx>
Wed, 27 Feb 2019 17:02:49 +0000 (12:02 -0500)
committerRich Felker <dalias@aerifal.cx>
Wed, 27 Feb 2019 17:07:20 +0000 (12:07 -0500)
commit71db5dfaa9ddcb65e18ff128c9ed122790d72e2f
treef2d6bbd0010521d1c389611db85f9adba8326e30
parent6516282d2adfad2c7e66d854cde3357120c75dbd
fix crash/misbehavior from oob read in new dynamic tls installation

code introduced in commit 9d44b6460ab603487dab4d916342d9ba4467e6b9
wrongly attempted to read past the end of the currently-installed dtv
to determine if a dso provides new, not-already-installed tls. this
logic was probably leftover from an earlier draft of the code that
wrongly installed the new dtv before populating it.

it would work if we instead queried the new, not-yet-installed dtv,
but instead, replace the incorrect check with a simple range check
against old_cnt. this also catches modules that have no tls at all
with a single condition.
ldso/dynlink.c