[Bro-Dev] [JIRA] (BIT-1159) type checking inconsistencies

Jon Siwek (JIRA) jira at bro-tracker.atlassian.net
Thu Mar 20 08:03:44 PDT 2014


    [ https://bro-tracker.atlassian.net/browse/BIT-1159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15815#comment-15815 ] 

Jon Siwek edited comment on BIT-1159 at 3/20/14 10:01 AM:
----------------------------------------------------------

Ok, I may end up removing support for the table/set ctor initialization shorthands.  It's already inconsistent because it only works with "global" variable inits, not with "local" ones due to a difference in they way they go through type checks.  Making globals do the same type checking as locals is what made me aware of the shorthand because then current usages don't pass the type check anymore.


was (Author: jsiwek):
Ok, I may end up removing support for the table/set ctor initialization shorthands.  It's already inconsistent because it only works with "global" variable inits, not with "local" ones due to a difference in they way they go through type checks.  Making globals do the same type checking as locals is what made me aware of the shorthand because then it doesn't pass the type check anymore.

> type checking inconsistencies
> -----------------------------
>
>                 Key: BIT-1159
>                 URL: https://bro-tracker.atlassian.net/browse/BIT-1159
>             Project: Bro Issue Tracker
>          Issue Type: Problem
>          Components: Bro
>    Affects Versions: git/master, 2.2
>            Reporter: Justin Azoff
>            Assignee: Jon Siwek
>            Priority: Low
>              Labels: language
>         Attachments: signature.asc
>
>
> If you try to compare a count to a port directly, you get the following:
> {code}
> operands must be of the same type (1500/tcp < 2000)
> {code}
> but if you have a record, and mixup the types like so, it silently fails:
> {code}
> type PortRange: record {
>     min: port &default=1/tcp;
>     max: port &default=65535/tcp;
> };
> global pr = PortRange($min=1000,$max=2000);
> #CORRECT: global pr = PortRange($min=1000/tcp,$max=2000/tcp);
> event bro_init()
> {
>     print (pr$min <= 1500/tcp  && 1500/tcp < pr$max) ? "OK" : "NOTOK";
> }
> {code}
> {code}
> $ bro a.bro
> NOTOK
> {code}



--
This message was sent by Atlassian JIRA
(v6.2-OD-10-004-WN#6253)


More information about the bro-dev mailing list