[ 
https://issues.apache.org/jira/browse/DAFFODIL-412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17238385#comment-17238385
 ] 

Mike Beckerle commented on DAFFODIL-412:
----------------------------------------

I think it does make sense. An assert with testKind pattern is like 
discriminating which element/model is next. The lengthKind pattern is a 
separate issue. 

For example, an assert with testKind pattern might be used to discriminate a 
choice to select which of the branches. The first branch might be required to 
begin with any of several things such as "TS|T\ O\ P\ S\ E\ C\ R\ E\ 
T|TOPSECRET|TOP\ SECRET|COSMIC|...."  The second branch of the choice might be 
things that begin with other markings.  Those have nothing to do with how the 
length is ultimately determined which could be delimited, or have a specified 
length of 80 characters, or whatever.

> asserts and discriminators with testKind pattern should have warning on 
> too-long match
> --------------------------------------------------------------------------------------
>
>                 Key: DAFFODIL-412
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-412
>             Project: Daffodil
>          Issue Type: Improvement
>          Components: Back End, Diagnostics, Front End, Usability
>    Affects Versions: s5
>            Reporter: Mike Beckerle
>            Priority: Major
>
> When an assert/discriminator is of testKind pattern the pattern test passes 
> if the regex matches a prefix of the data stream at the start of the element 
> This match attempt is not bounded by the length of the element.
> It's entirely possible for a very bad regex pattern to cause massive scanning 
> of the data stream before returning a match or a failure.
> Our runtime should emit warnings if this is happening i.e., an attempt to 
> match a regex that consumes more than N characters should emit a warning, 
> then every N more characters, etc.
> A tunable limit should be created for this regex lookahead/match so that we 
> can force a failure here. The Daffodil API should provide a way to set this 
> tunable limit.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to