The shared memory buffer used by srcPtr can be freed by another thread because it is not protected by a mutex. Subsequently, a use after free AIGABRT can occur in a race condition. SafetyNet logging is not added to avoid log spamming. The mutex lock is called to setup for decryption, which is called frequently. Test is run on rvc-dev branch, using target_hwasan-userdebug build. Test: sts sts-tradefed run sts-engbuild-no-spl-lock -m StsHostTestCases --test android.security.sts.Bug_176495665#testPocBug_176495665 Test: push to device with target_hwasan-userdebug build adb shell /data/local/tmp/Bug-176495665_sts64 Bug: 176495665 Bug: 176444161 Change-Id: Ie1aca0ceacb4b7a1b6e473b823541607a36d8cb4
79 lines
1.9 KiB
Makefile
79 lines
1.9 KiB
Makefile
LOCAL_PATH := $(call my-dir)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds libwvdrmcryptoplugin
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES := \
|
|
src/WVCryptoPlugin.cpp \
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
frameworks/av/include \
|
|
frameworks/native/include \
|
|
vendor/widevine/libwvdrmengine/cdm/core/include \
|
|
vendor/widevine/libwvdrmengine/cdm/include \
|
|
vendor/widevine/libwvdrmengine/cdm/metrics/include \
|
|
vendor/widevine/libwvdrmengine/include \
|
|
vendor/widevine/libwvdrmengine/mediacrypto/include \
|
|
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
|
|
|
LOCAL_HEADER_LIBRARIES := \
|
|
libutils_headers
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libcdm_protos \
|
|
libcrypto \
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
liblog
|
|
|
|
LOCAL_MODULE := libwvdrmcryptoplugin
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
|
|
LOCAL_MODULE_TAGS := optional
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Builds libwvdrmcryptoplugin_hidl
|
|
#
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_SRC_FILES := \
|
|
src_hidl/WVCryptoPlugin.cpp \
|
|
|
|
LOCAL_C_INCLUDES := \
|
|
frameworks/av/include \
|
|
frameworks/native/include \
|
|
vendor/widevine/libwvdrmengine/cdm/core/include \
|
|
vendor/widevine/libwvdrmengine/cdm/include \
|
|
vendor/widevine/libwvdrmengine/cdm/metrics/include \
|
|
vendor/widevine/libwvdrmengine/include_hidl \
|
|
vendor/widevine/libwvdrmengine/include \
|
|
vendor/widevine/libwvdrmengine/mediacrypto/include_hidl \
|
|
vendor/widevine/libwvdrmengine/mediacrypto/include \
|
|
vendor/widevine/libwvdrmengine/oemcrypto/include \
|
|
|
|
LOCAL_HEADER_LIBRARIES := \
|
|
libutils_headers
|
|
|
|
LOCAL_STATIC_LIBRARIES := \
|
|
libcdm_protos \
|
|
libcrypto
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
android.hardware.drm@1.0 \
|
|
android.hidl.memory@1.0 \
|
|
libhidlmemory \
|
|
liblog
|
|
|
|
LOCAL_CFLAGS := -Wthread-safety
|
|
|
|
LOCAL_MODULE := libwvdrmcryptoplugin_hidl
|
|
LOCAL_PROPRIETARY_MODULE := true
|
|
|
|
LOCAL_MODULE_TAGS := optional
|
|
|
|
include $(BUILD_STATIC_LIBRARY)
|