Menu

#20 Resource exhaustion code paths in genated code.

1.0
open
nobody
None
2023-07-30
2023-07-30
Gravis
No

In iso1EXIDatatypesEncoder.c there is a flaw with the iso1KeyValueType encoder (encode_iso1KeyValueType). The code path that enters } else if ( iso1KeyValueType->ANY_isUsed == 1u ) { will saturate memory/computational resources.

The condition encodes the contents of iso1KeyValueType->ANY, loops into case 175: where it will attempt to encode iso1KeyValueType->ANY infinitely (by looping back to itself) until encoding finally fails (e.g. ENOMEM scenario) and errn is set to a nonzero value.

It appears that iso1KeyInfoType and iso1SignaturePropertyType have the same issue.

Discussion


Log in to post a comment.