#include "amduat/enc/pel_program_dag.h" #include #include #include static int test_encode_nodes_count_overflow(void) { amduat_pel_program_t program; amduat_octets_t encoded = amduat_octets(NULL, 0); if (SIZE_MAX <= UINT32_MAX) { return 0; } memset(&program, 0, sizeof(program)); program.nodes_len = (size_t)UINT32_MAX + 1u; program.roots_len = 0; if (amduat_enc_pel_program_dag_encode_v1(&program, &encoded)) { fprintf(stderr, "expected encode failure for nodes_len overflow\n"); amduat_octets_free(&encoded); return 1; } return 0; } static int test_encode_roots_len_overflow(void) { amduat_pel_program_t program; amduat_octets_t encoded = amduat_octets(NULL, 0); size_t roots_len; if (SIZE_MAX / 8 == 0) { return 0; } roots_len = (SIZE_MAX / 8) + 1u; memset(&program, 0, sizeof(program)); program.nodes_len = 0; program.roots_len = roots_len; if (amduat_enc_pel_program_dag_encode_v1(&program, &encoded)) { fprintf(stderr, "expected encode failure for roots_len overflow\n"); amduat_octets_free(&encoded); return 1; } return 0; } int main(void) { if (test_encode_nodes_count_overflow() != 0) { return 1; } if (test_encode_roots_len_overflow() != 0) { return 1; } return 0; }