From ad81791641071e8daab0d27e49731975c5efcba6 Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Wed, 17 Jun 2015 15:03:20 -0700 Subject: Add libwilhelm to app_process. If an app exposes new/delete from a shared library, the libwilhelm shared library can wind up using the new from the app shared library, and the delete from libc++. It is completely legal for the app to export new/delete in this way, so in order to avoid this situation, preload libwilhelm in the zygote. This forces libwilhelm to always resolve the new/delete from libc++. This library cannot be added to android_runtime since libwilhelm has a shared library which depends on android_runtime. Bug: 21032018 Change-Id: Id89c196df62d98d62855a1421f397b75a7e990a9 --- cmds/app_process/Android.mk | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'cmds') diff --git a/cmds/app_process/Android.mk b/cmds/app_process/Android.mk index 3599695..7ce0846 100644 --- a/cmds/app_process/Android.mk +++ b/cmds/app_process/Android.mk @@ -1,5 +1,12 @@ LOCAL_PATH:= $(call my-dir) +# This is a list of libraries that need to be included in order to avoid +# bad apps. This prevents a library from having a mismatch when resolving +# new/delete from an app shared library. +# See b/21032018 for more details. +app_process_common_shared_libs := \ + libwilhelm \ + include $(CLEAR_VARS) LOCAL_SRC_FILES:= \ @@ -13,7 +20,8 @@ LOCAL_SHARED_LIBRARIES := \ libutils \ liblog \ libbinder \ - libandroid_runtime + libandroid_runtime \ + $(app_process_common_shared_libs) \ LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain @@ -44,7 +52,8 @@ LOCAL_SHARED_LIBRARIES := \ libutils \ liblog \ libbinder \ - libandroid_runtime + libandroid_runtime \ + $(app_process_common_shared_libs) \ LOCAL_WHOLE_STATIC_LIBRARIES := libsigchain -- cgit v1.1