OSDN Git Service

dl: fix dlsym lookups with RTLD_NEXT
authorTimo Teräs <timo.teras@iki.fi>
Tue, 8 Jan 2013 09:55:26 +0000 (11:55 +0200)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Wed, 9 Jan 2013 09:10:09 +0000 (10:10 +0100)
commitdf3a5fcc8d1c3402289375c92df705e978fab58d
treed6ce9241c8d13c36c18fd7243612244d440991c6
parent0c3eb2da578bc7ba2e74d240e3249dce62ec725e
dl: fix dlsym lookups with RTLD_NEXT

The current code for dlsym() when invoked with RTLD_NEXT lookup
searches for the module where it's being called from, and executes the
_dl_find_hash only for the next module in the chain. However, if the
looked symbol is not there, the rest of the modules are not checked.

Generally this is not a problem as symbols are merged for the parent
modules; so this affects only RTLD_NEXT.

This patch adds a loop iterating through all the following modules.

Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Reviewed-by: Filippo ARCIDIACONO <filippo.arcidiacono@st.com>
Tested-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
ldso/libdl/libdl.c