Branch data Line data Source code
1 : : // SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 2 : : /* Copyright 2021 IBM Corp. */ 3 : : 4 : : #define MBEDTLS_PKCS7_C 5 : : #include "secvar_common_test.c" 6 : : #include "../../crypto/pkcs7/pkcs7.c" 7 : : 8 : : const char *secvar_test_name = "pkcs7"; 9 : : 10 : 1 : int run_test() 11 : : { 12 : 1 : const unsigned char underrun_p7s[] = {0x30, 0x48}; 13 : : mbedtls_pkcs7 pkcs7; 14 : : unsigned char *data; 15 : : int rc; 16 : : 17 : 1 : mbedtls_pkcs7_init(&pkcs7); 18 : : /* The data must live in the heap, not the stack, for valgrind to 19 : : catch the overread. */ 20 : 1 : data = malloc(sizeof(underrun_p7s)); 21 : 1 : memcpy(data, underrun_p7s, sizeof(underrun_p7s)); 22 : 1 : rc = mbedtls_pkcs7_parse_der(data, sizeof(underrun_p7s), &pkcs7); 23 : 1 : free(data); 24 : 1 : ASSERT(0 > rc); 25 : : 26 : 1 : return 0; 27 : : } 28 : : 29 : 1 : int main(void) 30 : : { 31 : 1 : return run_test(); 32 : : }