Update git submodules
* Update system/libbase from branch 'master'
to 91a10d912827b818d0c1931ede3a2afaa93b18cd
- Make android::base::Basename() safe.
The previous "thread safety" was technically correct, but not super
useful in practice --- multiple calls to this function were safe, but
you couldn't mix android::base::Basename() and basename(3). This
actually hit us in practice when system_server leaked enough fds for
fdtrack to start up, which meant that libc calls that created fds would
request a backtrace, which meant that libunwind_stack would call
android::base::Basename(), which would call basename(3), which would
clobber a previous call to basename(3) in the original function that
made the otherwise innocuous libc call (realpath(3), in this case): it
was as if realpath(3) clobbered basename(3)'s storage!
I'm not a huge fan of this particular basename_r() implementation with
its gotos, but it's way too late in the T release cycle to be inventing
new implementations for a widely-used function. Sadly there's no
basename_r() for LP64 -- which, hilariously, is my fault -- so copy &
paste it is!
I've left mingw with the old implementation. I've no idea how much of
that mingw actually needs, so it can probably be cleaned up, but that's
a worry for another day.
Bug: http://b/231951809
Test: treehugger
Change-Id: I58a4c18d7943014ffdac4fd8185977b65b3ba1f7
1 file changed