# Copyright (C) 2021 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := CVE-2021-0596
LOCAL_SRC_FILES := poc.cpp
LOCAL_SRC_FILES += ../includes/memutils.c
LOCAL_MULTILIB := 64
LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
LOCAL_C_INCLUDES_64 := packages/apps/Nfc/nci/jni/extns/pn54x/inc
LOCAL_C_INCLUDES_64 += packages/apps/Nfc/nci/jni/extns/pn54x/src/common
LOCAL_C_INCLUDES_64 += packages/apps/Nfc/nci/jni/extns/pn54x/src/mifare
LOCAL_C_INCLUDES_64 += system/nfc/src/gki/common
LOCAL_C_INCLUDES_64 += system/nfc/src/gki/ulinux
LOCAL_C_INCLUDES_64 += system/nfc/src/include
LOCAL_C_INCLUDES_64 += system/nfc/src/nfa/include
LOCAL_C_INCLUDES_64 += system/nfc/src/nfc/include
LOCAL_SHARED_LIBRARIES_64 := libnfc_nci_jni

# Tag this module as a cts test artifact
LOCAL_COMPATIBILITY_SUITE := cts sts vts
LOCAL_CTS_TEST_PACKAGE := android.security.cts

LOCAL_ARM_MODE := arm
LOCAL_CFLAGS := -Wall -Werror
LOCAL_CFLAGS += -DCHECK_UNDERFLOW -DENABLE_SELECTIVE_OVERLOADING
include $(BUILD_CTS_EXECUTABLE)
