From b4e5067cab9f17fa76bd7695f41a0b5070e10df8 Mon Sep 17 00:00:00 2001 From: Dmitriy Ivanov Date: Tue, 28 Apr 2015 15:49:26 -0700 Subject: [PATCH] linker: initialize system properties Bug: http://b/20567629 Bug: https://code.google.com/p/chromium/issues/detail?id=478886 Change-Id: I8d2d89b749015e7fcd6e7ea646911f2e617dd1ba --- linker/linker.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linker/linker.cpp b/linker/linker.cpp index 63e1b174e..cea3a88af 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -3022,6 +3022,8 @@ static void init_linker_info_for_gdb(ElfW(Addr) linker_base) { insert_soinfo_into_debug_map(linker_soinfo_for_gdb); } +extern "C" int __system_properties_init(void); + /* * This code is called after the linker has linked itself and * fixed it's own GOT. It is safe to make references to externs @@ -3036,6 +3038,9 @@ static ElfW(Addr) __linker_init_post_relocation(KernelArgumentBlock& args, ElfW( // Initialize environment functions, and get to the ELF aux vectors table. linker_env_init(args); + // Initialize system properties + __system_properties_init(); // may use 'environ' + // If this is a setuid/setgid program, close the security hole described in // ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:23.stdio.asc if (get_AT_SECURE()) {