You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Mike McGann (Jira)" <ji...@apache.org> on 2023/02/24 17:08:00 UTC

[jira] [Assigned] (DAFFODIL-1704) PE undetected - Binary number parsers are missing checks for bitLength

     [ https://issues.apache.org/jira/browse/DAFFODIL-1704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike McGann reassigned DAFFODIL-1704:
-------------------------------------

    Assignee: Mike McGann

> 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)