[
https://issues.apache.org/jira/browse/DAFFODIL-1704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steve Lawrence resolved DAFFODIL-1704.
--------------------------------------
Resolution: Fixed
This relevant schema has this:
{code:xml}
<xs:simpleType name="bits64" dfdl:length="64" dfdl:lengthKind="explicit">
<xs:restriction base="xs:unsignedInt"/>
</xs:simpleType>
{code}
The maximum length of a unsignedInt can only be 32 bits, so this error is
correct and the schema needs to be fixed.
It's possible this change will cause other schemas to fail as well, but those
are real issues in the schema that should be fixed. Hopefully there aren't
others, but we'll find and fix these issues as we update the regression suite.
This commit is doing the right thing, so marking as resolved.
> PE undetected - Binary number parsers are missing checks for bitLength
> ----------------------------------------------------------------------
>
> Key: DAFFODIL-1704
> URL: https://issues.apache.org/jira/browse/DAFFODIL-1704
> Project: Daffodil
> Issue Type: Bug
> Components: Back End, General
> Affects Versions: 2.0.0
> Reporter: Elizabeth Fahl
> Assignee: Mike McGann
> Priority: Critical
> Fix For: 3.5.0
>
>
> This was discussed in a review of boolean parser and unparser, which have a
> check for bitLength that the binary number parsers do not. These checks would
> verify that bitLength falls within the accepted range for it's type as noted
> in 12.3.7.2.1 in the spec. It also needs to be determined if this check would
> be better in an evaluatable so it could be done at compile time.
> The check in BinaryBooleanParsers.scala:
> {code}
> val nBits = getBitLength(start)
> if (nBits < 1 || nBits > 32) {
> PE(start, "Number of bits %d out of range, must be between 1 and 32
> bits.", nBits)
> return
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)