[
https://issues.apache.org/jira/browse/DAFFODIL-2688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mike Beckerle reassigned DAFFODIL-2688:
---------------------------------------
Assignee: Mike Beckerle
> prefixed length field when not enough bits available gives Runtime SDE not
> parse error
> --------------------------------------------------------------------------------------
>
> Key: DAFFODIL-2688
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2688
> Project: Daffodil
> Issue Type: Bug
> Components: Back End
> Affects Versions: 3.3.0
> Reporter: Mike Beckerle
> Assignee: Mike Beckerle
> Priority: Major
>
> When a prefixed length, let's say a 4-byte unsigned int, is being parsed, and
> there are not 32-bits available (because, for example you are at end of
> data), then you don't get a parse error. Instead you get:
> {code:java}
> Runtime Schema Definition Error: Prefixed length result must be non-negative
> after dfdl:prefixIncludesPrefixLength adjustment , but was: -4 {code}
> This needs to be a parse error due to the insufficient bits.
> If you trace, you get this:
> {code:java}
> parser: <BinaryIntegerKnownLengthParser/>
> bitPosition: 1920
> data:
> │ │
> 87654321 0011 2233 4455 6677 8899 aabb ccdd eeff 0123456789abcdef
> infoset:
> <?xml version="1.0" encoding="UTF-8"?>
> <message (prefixLength)></message (prefixLength)>
> diff:
> (no differences)
> failure:
> Parse Error: Insufficient bits in data. Needed 32 bit(s) but found only 0
> available.
> Schema context: message (prefixLength) Location line 385 in
> file:/....../common.dfdl.xsd
> Data location was preceding byte 240 limit(bytes) 240
> -----------------------------------------------------------------
> 347org.apache.daffodil.tdml.TDMLExceptionImpl: (Implementation: daffodil)
> Runtime Schema Definition Error: Prefixed length result must be non-negative
> after dfdl:prefixIncludesPrefixLength adjustment , but was: -4 {code}
> So you can see how it's just out of data, yet getting an RSDE on this.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)