From 30e18e974a54673db58e6e0a8d35ae8ccc1995eb Mon Sep 17 00:00:00 2001 From: Shankara Pailoor Date: Tue, 31 Jul 2018 10:38:58 -0700 Subject: [PATCH] update --- logging/logger.go | 2 +- parser/strace2syz.go | 5 +---- scanner/lex.rl | 10 ++++++---- scanner/strace.y | 2 ++ strace_types/util.go | 2 ++ 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/logging/logger.go b/logging/logger.go index 78f9cbf..2404f87 100644 --- a/logging/logger.go +++ b/logging/logger.go @@ -3,5 +3,5 @@ package logging import "fmt" func Failf(format string, a ...interface{}) { - panic(fmt.Sprintf(format, a)) + panic(fmt.Sprintf(format, a...)) } \ No newline at end of file diff --git a/parser/strace2syz.go b/parser/strace2syz.go index 8a2442e..af14f9a 100644 --- a/parser/strace2syz.go +++ b/parser/strace2syz.go @@ -266,15 +266,12 @@ func Parse_ArrayType(syzType *prog.ArrayType, straceType strace_types.Type, ctx case *strace_types.PointerType, *strace_types.Expression, *strace_types.BufferType: return GenDefaultArg(syzType, ctx), nil default: - Failf("Error parsing Array with Wrong Type: %s", straceType.Name()) + Failf("Error parsing Array: %s with Wrong Type: %s\n", syzType.FldName, straceType.Name()) } return strace_types.GroupArg(syzType, args), nil } func Parse_StructType(syzType *prog.StructType, straceType strace_types.Type, ctx *Context) (prog.Arg, error) { - if syzType.Dir() == prog.DirOut { - return GenDefaultArg(syzType, ctx), nil - } straceType = PreprocessStruct(syzType, straceType, ctx) args := make([]prog.Arg, 0) switch a := straceType.(type) { diff --git a/scanner/lex.rl b/scanner/lex.rl index 79f64dd..5af59a0 100644 --- a/scanner/lex.rl +++ b/scanner/lex.rl @@ -39,11 +39,12 @@ func (lex *lexer) Lex(out *StraceSymType) int { %%{ dateSep = '-' | '\/'; datetimeSep = 'T' | '-'; + microTimeSep = '+' | '-'; date = digit{4}.dateSep.digit{2}.dateSep.digit{2}; nullptr = "NULL"; time = digit{2}.':'.digit{2}.':'.digit{2} | - digit{2}.':'.digit{2}.':'.digit{2}.'+'.digit{4} | - digit{2}.':'.digit{2}.':'.digit{2}.'+'.digit{4}.'.'.digit+ | + digit{2}.':'.digit{2}.':'.digit{2}.microTimeSep.digit{4} | + digit{2}.':'.digit{2}.':'.digit{2}.microTimeSep.digit{4}.'.'.digit+ | digit{2}.':'.digit{2}.':'.digit{2}.'.'.digit+; datetime = date.datetimeSep.time; unfinished = '' | ', '; @@ -53,8 +54,9 @@ func (lex *lexer) Lex(out *StraceSymType) int { resumed = '<... '.identifier+.' resumed>' | '<... '.identifier+.' resumed> ,' | '<... resuming'.' '.identifier.' '.identifier.' '.'...>'; - ipv4 = '\"'.digit{1,4}.'\.'.digit{1,4}.'\.'digit{1,4}.'\.'.digit{1,4}'\"'; - ipv6 = '\"'.':'.':'.'\"' | '\"'.':'.':'.digit.'\"'; + ipv4Base = digit{1,4}.'\.'.digit{1,4}.'\.'.digit{1,4}.'\.'.digit{1,4}; + ipv4 = '\"'.ipv4Base.'\"'; + ipv6 = '\"'.':'.':'.'\"' | '\"'.':'.':'.digit.'\"' | '\"'.':'.':'xdigit+.':'.ipv4Base.'\"'; flag = (['_']+?upper+ . ['_'A-Z0-9]+)-nullptr; string = '\"'.['_'('')'' ''#'':'0-9a-zA-Z\/\\\*]*.'\"'- (ipv4 | ipv6); mac = xdigit{2}.':'.xdigit{2}.':'.xdigit{2}.':'.xdigit{2}.':'.xdigit{2}.':'.xdigit{2}; diff --git a/scanner/strace.y b/scanner/strace.y index 548be6a..28ab420 100644 --- a/scanner/strace.y +++ b/scanner/strace.y @@ -113,6 +113,8 @@ syscall: Stracelex.(*lexer).result = $$ } | RESUMED types RPAREN EQUALS UINT FLAG LPAREN parentheticals RPAREN { $$ = types.NewSyscall(-1, "tmp", $2, int64($5), false, true); Stracelex.(*lexer).result = $$ } + | RESUMED types RPAREN EQUALS INT FLAG LPAREN parentheticals RPAREN { $$ = types.NewSyscall(-1, "tmp", $2, int64($5), false, true); + Stracelex.(*lexer).result = $$ } | IDENTIFIER LPAREN RPAREN EQUALS INT %prec NOFLAG { $$ = types.NewSyscall(-1, $1, nil, $5, false, false); Stracelex.(*lexer).result = $$;} | IDENTIFIER LPAREN types RPAREN EQUALS INT %prec NOFLAG{ diff --git a/strace_types/util.go b/strace_types/util.go index 0d3123e..f90f288 100644 --- a/strace_types/util.go +++ b/strace_types/util.go @@ -207,6 +207,7 @@ var ( Pair{"IPPROTO_IPV6", "IPV6_MTU"}: "$inet6_int", Pair{"SOL_IPV6", "IPV6_MTU_DISCOVER"}: "$inet6_mtu", Pair{"SOL_ICMPV6", "1"}: "$inet6_buf", + Pair{"SOL_IPV6", "IPV6_V6ONLY"}: "$inet6_int", Pair{"SOL_IPV6", "IPV6_MTU_DISCOVER"}: "$inet6_mtu", Pair{"SOL_PACKET", "PACKET_RX_RING"}: "$packet_rx_ring", Pair{"SOL_PACKET", "PACKET_RECV_OUTPUT"}: "$packet_int", @@ -677,6 +678,7 @@ var ( "SIGUSR1": 10, "SIGALRM": 14, "SIGFPE": 8, + "SIGINT": 2, "SIG_0": 0, "S_ISUID": 0x0004000, "S_ISGID": 0x0002000,