TensorShape::GetNumElements() (src/armnn/Tensor.cpp:181-209)GetNumElements() multiplies tensor dimensions using unsigned int (32-bit) with no overflow check:1unsigned int count = 1;
2for (unsigned int i = 0; i < m_NumDimensions; ++i) {
3 count *= m_Dimensions[i]; // NO OVERFLOW CHECK
4}poc_armnn_overflow.tflite — A patched TFLite model with a tensor whose shape is [65536, 65536].GetNumElements() computes 65536 * 65536 = 0 (unsigned int overflow)GetNumBytes() returns sizeof(float) * 0 = 0CheckBufferSize() at TfLiteParser.cpp:270 compares overflowed value (0) against buffer size — check passesnew T[0] allocates a tiny buffer (TfLiteParser.cpp:653)uint64_t accumulator or checked multiplication (e.g., __builtin_mul_overflow) in GetNumElements().src/armnn/Tensor.cpp:190-197 — GetNumElements() (core, affects ALL parsers)src/armnn/Tensor.cpp:429 — GetNumBytes() (multiplies overflowed result)src/armnnTfLiteParser/TfLiteParser.cpp:270,653,663 — buffer check + allocation + memcpy