BinPAC segfaults on circular record dependencies

Description

The shortest example that makes BinPAC generate a segmentation fault is, when written in any pac file :

type Node = record
{
next: Node;
};

Granted it does not make sense here because there is no stopping condition, BinPAC should yield an error message and not a segmentation fault.

Now, let's talk about circular record dependencies. Most protocols are straightforward, and we know what fields to expect at each point of the parsed packet, leading to having no need for any recursion whatsoever. However, I came across this part of a protocol described as follows in ASN.1 :

Data := CHOICE
{
array [ 1 ] IMPLICIT SEQUENCE OF Data,
boolean [ 2 ] IMPLICIT BOOLEAN,

...

}

A Data can be a sequence of Data, hence the need of record recursion. If BinPAC does not allow that, parsers for this kind of protocols can't be (fully) written with it.

Regards.

P.S. : I'm not sure the second part of this message should have been written here.

Environment

None

Assignee

Unassigned

Reporter

llh

Labels

None

External issue ID

None

Components

Priority

Normal
Configure