- 08 Mar, 2017 6 commits
-
-
Kirill Smelkov authored
It is true that tuples and lists are very similar, and when e.g. a python function accepts tuple as input, and then uses only indexes access, it can be substituted with list. However some functions do `isinstance(..., tuple)` etc, and e.g. for a go program which wants to produce pickle for such python programs there is currently no way to generate pickle with tuple opcodes. So to solve this teach ogórek about tuples: - introduce simple Tuple type which has []interface{} as underlying - when decoding tuple opcodes produce this Tuple instead of []interface{} used previously. - when encoding encode Tuple with tuple opcodes. Otherwise Tuple can be seen and behaves like a regular go []interface{} slice. In fact the only difference is that runtime type of Tuple is different from runtime type of []interface{} but otherwise both values are the same and can be casted to each other if/when needed freely. NOTE opReduce decoder is adjusted to always require tuple, not list, because with e.g. cPickle: "c__main__\nf\n]R." -> TypeError('argument list must be a tuple', ...) "c__main__\nf\n)R." -> ok ( the first one uses empty list - "]", and the second one empty tuple - ")" ) So it is ok and compatible to always require args to be tuple for reduce.
-
Kirill Smelkov authored
That is so that decode·encode becomes identity. For the other way encode(decode(pickle)) == pickle it is generally not possible to do, because pickle machine is almost general machine, and it is possible to e.g. have some prefix in program which is NOP or result of which is no longer used, use different opcodes to build list or tuple etc. Adjustments to encoder are: - teach it to encode big.Int back to opLong (not some struct) - teach it to encode Call back to opReduce (not some struct) Tests are adjusted to verify that `decode(encode(v)) == v` holds for all inputs in test vector.
-
Kirill Smelkov authored
Else it prints just "no EOF" and it is not clear for which input the problem is there.
-
Kirill Smelkov authored
that is with %#v instead of %q. Because e.g. %q for nil []byte will be printing still as "", not nil etc. When some decode test fails here we want to get full information, not some pretty one.
-
Kirill Smelkov authored
1. the number has to be terminated with 'L' - check it (previously last byte was simply discarded) 2. big.Int.SetString() ok code has to be checked too to catch invalid input. big.Int.SetString() usage in test adjusted to also not skip errors silently.
-
Kirill Smelkov authored
* decoder: Don't forget to check memo for key not there on read access If we do not do reading from memo will return memo's zero value (= nil), which is a) not correct - many memo keys could be read this way, and b) nil there on stack breaks invariants of stack containing only good values. Furthermore, it can even lead to crashes on e.g. calling reflect.TypeOf(stack.top()) in the next patch. Anyway getting something from memo must be checked for whether it there or not for correctness. Noticed while working on fix for #30. * decoder: Fix "panic: runtime error: hash of unhashable type ..." Go specification requires that only comparable types could be used as map keys: https://golang.org/ref/spec#Map_types For map[interface{}]... this is checked at runtime, and if concrete value used as a key is not comparable it results in runtime panic, e.g.: panic: runtime error: hash of unhashable type ogórek.Call goroutine 1 [running]: github.com/kisielk/og-rek.(*Decoder).loadDict(0xc420084360, 0x64, 0x0) /tmp/go-fuzz-build561441550/gopath/src/github.com/kisielk/og-rek/ogorek.go:655 +0x18c github.com/kisielk/og-rek.Decoder.Decode(0xc42001c3c0, 0x5a9300, 0x0, 0x0, 0xc4200164b0, 0x0, 0x0, 0x0, 0x0, 0x0, ...) /tmp/go-fuzz-build561441550/gopath/src/github.com/kisielk/og-rek/ogorek.go:187 +0x172b github.com/kisielk/og-rek.Fuzz(0x7ff901592000, 0xa, 0x200000, 0x3) /tmp/go-fuzz-build561441550/gopath/src/github.com/kisielk/og-rek/fuzz.go:12 +0x108 go-fuzz-dep.Main(0x50d830) /tmp/go-fuzz-build561441550/goroot/src/go-fuzz-dep/main.go:49 +0xd9 main.main() /tmp/go-fuzz-build561441550/gopath/src/github.com/kisielk/og-rek/go.fuzz.main/main.go:10 +0x2d exit status 2 so when decoding dict and friends - all places where maps are populated - we have to check whether an object on stack we are going to use as key is suitable. Issue #30 contains comparison of 2 ways to do such check - catch runtime panic in exception style manner or use reflect.TypeOf(v).Comparable(). Since reflect-way turns out to be faster https://github.com/kisielk/og-rek/issues/30#issuecomment-283609067 and likely will become more faster in the future: https://github.com/golang/go/issues/19361 it was decided to go the reflect way (which is also a canonical way in go land). So audit all places where map items are set and add appropriate checks before them. I've verified that if we remove any of the added checks, via so far found crash vectors, at least one crash case will reappear in tests. This means that all added checks are actually test covered. Updates: #30 * decoder: Don't forget to check for odd #elements in loadDict & friends e.g. for Dict opcode the expected stack state is MARK key1 obj1 key2 obj2 ... keyN objN DICT so if in between MARK and DICT there is odd number of elements this is an error in input data. We also used to crash on such cases, e.g.: "(\x88d" panic: runtime error: index out of range goroutine 1 [running]: github.com/kisielk/og-rek.(*Decoder).loadDict(0xc420082990, 0xc42000e464, 0x0) /tmp/go-fuzz-build403415384/gopath/src/github.com/kisielk/og-rek/ogorek.go:652 +0x21d github.com/kisielk/og-rek.Decoder.Decode(0xc42001c7e0, 0x5a9320, 0x0, 0x0, 0xc4200167b0, 0x0, 0x0, 0x0, 0x0, 0x0, ...) /tmp/go-fuzz-build403415384/gopath/src/github.com/kisielk/og-rek/ogorek.go:188 +0x172d github.com/kisielk/og-rek.Fuzz(0x7f6d1f310000, 0x3, 0x200000, 0x3) /tmp/go-fuzz-build403415384/gopath/src/github.com/kisielk/og-rek/fuzz.go:12 +0x108 go-fuzz-dep.Main(0x50d798) /tmp/go-fuzz-build403415384/goroot/src/go-fuzz-dep/main.go:49 +0xd9 main.main() /tmp/go-fuzz-build403415384/gopath/src/github.com/kisielk/og-rek/go.fuzz.main/main.go:10 +0x2d I've audited whole decoder and regarding odd #(elements) there are only 2 places to care: loadDict and loadSetItems and crashers for all of them were already found by fuzz testing. Fixes #30 (for all known cases so far).
-
- 01 Mar, 2017 3 commits
-
-
Kirill Smelkov authored
This adds more corpus to fuzz as run by me and which found a bit more crashers now collected in #30.
-
Kirill Smelkov authored
This partly reverts 572d0a6a and just changes %t -> %T so that printing does not enter infinite recursion and just print what we need: type of an object (%t is for true/false). Along the way I've added "pickle:" prefix to errors. In the future maybe it would make sense to create dedicated DecodeError which would contain position, current opcode, and error message itself. This way error reporting would be more structured and useful for users.
-
Kamil Kisiel authored
-
- 28 Feb, 2017 9 commits
-
-
Kamil Kisiel authored
-
Kamil Kisiel authored
-
Kamil Kisiel authored
-
Kamil Kisiel authored
For example: runtime: goroutine stack exceeds 1000000000-byte limit fatal error: stack overflow runtime stack: runtime.throw(0x100a3d, 0xe) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/runtime/panic.go:566 +0x95 runtime.newstack() /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/runtime/stack.go:1061 +0x416 runtime.morestack() /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/runtime/asm_amd64.s:366 +0x7f goroutine 1 [running]: runtime.resolveNameOff(0xdeec0, 0x1916, 0x260e6ecb713) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/runtime/type.go:168 fp=0xc4400f02c0 sp=0xc4400f02b8 reflect.resolveNameOff(0xdeec0, 0x1916, 0x0) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/runtime/runtime1.go:493 +0x33 fp=0xc4400f02e8 sp=0xc4400f02c0 reflect.(*rtype).nameOff(0xdeec0, 0xc400001916, 0x0) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/reflect/type.go:663 +0x4b fp=0xc4400f0310 sp=0xc4400f02e8 reflect.(*rtype).String(0xdeec0, 0xc42000e9e0, 0x98) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/reflect/type.go:733 +0x4e fp=0xc4400f0350 sp=0xc4400f0310 fmt.(*pp).badVerb(0xc4200180c0, 0x74) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:324 +0x590 fp=0xc4400f03e8 sp=0xc4400f0350 fmt.(*pp).fmtString(0xc4200180c0, 0x0, 0x0, 0x74) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:441 +0x119 fp=0xc4400f0420 sp=0xc4400f03e8 fmt.(*pp).printValue(0xc4200180c0, 0xdeec0, 0xc42000e9e0, 0x98, 0x74, 0x108419) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:715 +0x294d fp=0xc4400f0610 sp=0xc4400f0420 fmt.(*pp).printValue(0xc4200180c0, 0xea6e0, 0xc42000e9e0, 0x99, 0xc400000074, 0x108418) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:764 +0x2ec6 fp=0xc4400f0800 sp=0xc4400f0610 fmt.(*pp).printValue(0xc4200180c0, 0xe5960, 0xc42000a5d0, 0x194, 0x74, 0x108417) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:777 +0x24a3 fp=0xc4400f09f0 sp=0xc4400f0800 fmt.(*pp).printValue(0xc4200180c0, 0xdd140, 0xc42000ea00, 0x97, 0xc400000074, 0x108416) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:824 +0xf51 fp=0xc4400f0be0 sp=0xc4400f09f0 fmt.(*pp).printValue(0xc4200180c0, 0xe5960, 0xc42000ea30, 0x194, 0x74, 0x108415) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:777 +0x24a3 fp=0xc4400f0dd0 sp=0xc4400f0be0 fmt.(*pp).printValue(0xc4200180c0, 0xdd140, 0xc42000ea40, 0x97, 0xc400000074, 0x108414) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:824 +0xf51 fp=0xc4400f0fc0 sp=0xc4400f0dd0 fmt.(*pp).printValue(0xc4200180c0, 0xe5960, 0xc4200105a0, 0x194, 0x74, 0x108413) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:777 +0x24a3 fp=0xc4400f11b0 sp=0xc4400f0fc0 fmt.(*pp).printValue(0xc4200180c0, 0xdd140, 0xc42000ea80, 0x97, 0xc400000074, 0x108412) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:824 +0xf51 fp=0xc4400f13a0 sp=0xc4400f11b0 fmt.(*pp).printValue(0xc4200180c0, 0xe5960, 0xc4200105b0, 0x194, 0x74, 0x108411) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:777 +0x24a3 fp=0xc4400f1590 sp=0xc4400f13a0 fmt.(*pp).printValue(0xc4200180c0, 0xdd140, 0xc42000ea80, 0x97, 0xc400000074, 0x108410) /var/folders/dx/9jnx9d2j2kg8n35xgcsxjfyr0000gn/T/go-fuzz-build069870222/goroot/src/fmt/print.go:824 +0xf51 fp=0xc4400f1780 sp=0xc4400f1590 ... etc
-
Kamil Kisiel authored
-
Kamil Kisiel authored
-
Kamil Kisiel authored
decoder: Stack overflow handling fixes
-
Kirill Smelkov authored
I was going through decoder code and noticed in many places pickle machine stack was popped / used without checks for overflow (whether e.g. there are elements at all). To catch/test the bugs the following approach can be used: we take all our decoder test input vectors, and similar to a5094338 - where we were truncating it at tail to test how unexpected EOF is handled, we can cut some starting prefix from input and pass it to decode. This way if there was some instructions to prepare data and later to use the data, in skipped form there will be only "use data" instructions and without data on stack and proper stack overflow handling it will panic. Fix it all over the place. For the reference here is how added test fails without actual decoder fixes: ogorek_test.go:112: int: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: float: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: float: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: float: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: float: panic on input[6:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[4:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[6:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[9:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[11:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[14:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[15:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[17:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[18:]: runtime error: index out of range ogorek_test.go:112: long: panic on input[20:]: runtime error: slice bounds out of range ogorek_test.go:112: long: panic on input[21:]: runtime error: slice bounds out of range ogorek_test.go:112: long: panic on input[23:]: runtime error: index out of range ogorek_test.go:112: None: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: empty tuple: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: empty tuple: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: tuple of two ints: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: tuple of two ints: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: tuple of two ints: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: tuple of two ints: panic on input[9:]: runtime error: index out of range ogorek_test.go:112: tuple of two ints: panic on input[11:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[6:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[9:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[10:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[19:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[20:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[23:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[24:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[25:]: runtime error: index out of range ogorek_test.go:112: nested tuples: panic on input[27:]: runtime error: index out of range ogorek_test.go:112: tuple with top 1 items from stack: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: tuple with top 1 items from stack: panic on input[3:]: runtime error: slice bounds out of range ogorek_test.go:112: tuple with top 1 items from stack: panic on input[4:]: runtime error: index out of range ogorek_test.go:112: tuple with top 2 items from stack: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: tuple with top 2 items from stack: panic on input[3:]: runtime error: slice bounds out of range ogorek_test.go:112: tuple with top 2 items from stack: panic on input[6:]: runtime error: slice bounds out of range ogorek_test.go:112: tuple with top 2 items from stack: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: tuple with top 3 items from stack: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: tuple with top 3 items from stack: panic on input[3:]: runtime error: slice bounds out of range ogorek_test.go:112: tuple with top 3 items from stack: panic on input[6:]: runtime error: slice bounds out of range ogorek_test.go:112: tuple with top 3 items from stack: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: tuple with top 3 items from stack: panic on input[9:]: runtime error: slice bounds out of range ogorek_test.go:112: tuple with top 3 items from stack: panic on input[10:]: runtime error: index out of range ogorek_test.go:112: empty list: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: empty list: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: empty list: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: empty list: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[9:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[10:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[12:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[13:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[16:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[17:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[20:]: runtime error: index out of range ogorek_test.go:112: list of numbers: panic on input[21:]: runtime error: index out of range ogorek_test.go:112: string: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: string: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: string: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: string: panic on input[10:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[11:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[14:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[16:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[18:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[20:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[21:]: runtime error: index out of range ogorek_test.go:112: unicode: panic on input[23:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[4:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[10:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[12:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[16:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[22:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[28:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[30:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[31:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[34:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[36:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[40:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[46:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[48:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[49:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[52:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[58:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[60:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[62:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[64:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[67:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[68:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[70:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[73:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[76:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[79:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[82:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[86:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[88:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[91:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[92:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[94:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[96:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[97:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[98:]: runtime error: index out of range ogorek_test.go:112: unicode2: panic on input[100:]: runtime error: index out of range ogorek_test.go:112: empty dict: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: empty dict: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: empty dict: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: empty dict: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[10:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[13:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[18:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[19:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[21:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[22:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[27:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[30:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[32:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[35:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[38:]: runtime error: index out of range ogorek_test.go:112: dict with strings: panic on input[39:]: runtime error: index out of range ogorek_test.go:112: GLOBAL and REDUCE opcodes: panic on input[6:]: runtime error: index out of range ogorek_test.go:112: GLOBAL and REDUCE opcodes: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: GLOBAL and REDUCE opcodes: panic on input[9:]: runtime error: index out of range ogorek_test.go:112: GLOBAL and REDUCE opcodes: panic on input[14:]: runtime error: index out of range ogorek_test.go:112: GLOBAL and REDUCE opcodes: panic on input[17:]: runtime error: slice bounds out of range ogorek_test.go:112: GLOBAL and REDUCE opcodes: panic on input[18:]: runtime error: index out of range ogorek_test.go:112: GLOBAL and REDUCE opcodes: panic on input[19:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[4:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[6:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[11:]: runtime error: index out of range ogorek_test.go:112: LONG_BINPUT opcode: panic on input[12:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[6:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[9:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[12:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[13:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[14:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[15:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[16:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[17:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[19:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[20:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[22:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[23:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[32:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[41:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[50:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[53:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[59:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[68:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[77:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[80:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[86:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[89:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[95:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[104:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[113:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[122:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[131:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[140:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[149:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[150:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[151:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[152:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[154:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[155:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[156:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[157:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[158:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[159:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[161:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[165:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[166:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[168:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[169:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[170:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[171:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[172:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[174:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[179:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[181:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[183:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[184:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[186:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[190:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[191:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[194:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[196:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[197:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[199:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[205:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[214:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[223:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[232:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[242:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[246:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[248:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[249:]: runtime error: index out of range ogorek_test.go:112: graphite message1: panic on input[250:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[3:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[6:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[10:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[12:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[13:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[14:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[15:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[16:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[19:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[20:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[22:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[29:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[31:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[32:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[34:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[35:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[37:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[38:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[39:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[40:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[43:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[46:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[50:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[51:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[53:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[54:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[56:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[58:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[61:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[64:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[73:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[74:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[76:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[77:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[80:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[81:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[82:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[83:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[84:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[87:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[90:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[91:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[92:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[95:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[99:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[100:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[102:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[103:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[107:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[108:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[110:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[111:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[114:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[115:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[116:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[118:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[119:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[124:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[125:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[127:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[128:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[131:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[133:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[134:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[136:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[137:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[141:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[142:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[143:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[145:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[146:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[147:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[148:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[151:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[152:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[154:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[155:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[158:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[159:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[160:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[161:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[163:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[164:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[169:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[170:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[172:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[173:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[174:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[178:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[179:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[181:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[182:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[183:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[187:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[188:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[190:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[191:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[192:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[193:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[195:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[196:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[197:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[199:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[200:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[201:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[202:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[205:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[206:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[208:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[209:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[213:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[214:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[215:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[217:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[218:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[219:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[220:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[221:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[222:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[223:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[226:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[228:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[231:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[234:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[236:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[237:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[238:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[239:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[240:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[241:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[243:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[246:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[247:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[248:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[249:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[250:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[251:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[253:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[254:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[258:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[259:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[261:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[262:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[263:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[265:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[266:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[270:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[271:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[272:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[275:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[278:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[279:]: runtime error: index out of range ogorek_test.go:112: graphite message2: panic on input[280:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[2:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[5:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[6:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[7:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[10:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[14:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[15:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[16:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[18:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[19:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[20:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[23:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[26:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[27:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[28:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[31:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[32:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[35:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[36:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[37:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[39:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[41:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[42:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[43:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[47:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[50:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[52:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[53:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[54:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[58:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[59:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[60:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[61:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[63:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[64:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[67:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[70:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[71:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[74:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[75:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[76:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[77:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[81:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[84:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[85:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[86:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[88:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[89:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[90:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[91:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[92:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[95:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[98:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[99:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[100:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[103:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[104:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[107:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[109:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[110:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[111:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[115:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[116:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[117:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[118:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[119:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[120:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[121:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[122:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[123:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[125:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[128:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[129:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[130:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[132:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[133:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[136:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[137:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[138:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[140:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[141:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[142:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[143:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[144:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[148:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[151:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[152:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[153:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[154:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[155:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[157:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[158:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[161:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[163:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[164:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[165:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[169:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[170:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[171:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[172:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[173:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[175:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[178:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[182:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[183:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[186:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[187:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[188:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[190:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[191:]: runtime error: index out of range ogorek_test.go:112: graphite message3: panic on input[192:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[8:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[13:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[14:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[15:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[19:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[32:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[33:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[34:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[36:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[38:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[40:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[42:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[44:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[48:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[52:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[61:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[64:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[65:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[77:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[81:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[90:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[97:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[98:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[106:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[117:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[118:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[137:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[138:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[141:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[146:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[156:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[157:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[158:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[170:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[173:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[189:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[194:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[214:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[225:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[226:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[229:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[230:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[234:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[236:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[237:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[241:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[242:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[275:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[276:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[277:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[280:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[281:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[283:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[285:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[286:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[290:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[291:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[296:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[298:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[299:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[315:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[349:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[352:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[353:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[354:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[359:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[360:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[375:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[380:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[385:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[390:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[399:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[409:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[414:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[482:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[491:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[516:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[530:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[535:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[546:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[549:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[554:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[555:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[567:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[568:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[572:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[573:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[574:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[577:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[578:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[580:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[582:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[583:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[587:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[588:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[595:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[597:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[598:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[599:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[602:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[605:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[607:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[612:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[613:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[614:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[615:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[622:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[623:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[628:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[631:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[632:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[641:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[642:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[646:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[651:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[653:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[654:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[656:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[658:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[661:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[666:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[671:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[673:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[681:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[683:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[686:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[689:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[691:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[694:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[698:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[701:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[704:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[706:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[711:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[721:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[726:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[736:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[738:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[741:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[744:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[746:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[751:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[754:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[756:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[759:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[761:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[766:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[771:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[774:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[776:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[781:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[786:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[788:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[791:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[796:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[799:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[801:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[802:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[804:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[810:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[817:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[819:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[822:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[824:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[834:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[840:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[841:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[845:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[846:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[850:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[851:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[852:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[854:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[860:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[865:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[870:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[871:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[875:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[876:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[880:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[881:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[882:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[889:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[890:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[896:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[899:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[908:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[909:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[913:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[918:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[923:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[929:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[930:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[934:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[958:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[968:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[973:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[975:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[977:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[978:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[983:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[992:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1020:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1028:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1032:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1037:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1045:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1046:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1047:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1048:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1068:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1077:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1088:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1112:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1115:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1122:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1123:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1132:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1135:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1137:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1140:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1145:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1150:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1155:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1156:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1159:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1190:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1191:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1195:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1196:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1200:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1204:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1205:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1210:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1212:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1215:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1221:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1238:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1244:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1252:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1255:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1258:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1259:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1267:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1279:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1280:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1303:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1309:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1323:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1324:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1328:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1334:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1338:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1359:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1366:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1378:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1381:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1382:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1412:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1415:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1420:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1430:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1435:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1437:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1440:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1445:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1450:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1460:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1462:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1467:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1483:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1484:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1500:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1504:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1505:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1509:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1518:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1523:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1525:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1528:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1533:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1540:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1545:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1550:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1558:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1605:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1609:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1610:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1614:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1615:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1619:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1644:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1645:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1654:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1659:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1661:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1694:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1708:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1713:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1727:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1732:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1737:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1738:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1741:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1749:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1751:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1771:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1776:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1811:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1815:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1816:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1819:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1820:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1824:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1825:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1829:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1831:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1834:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1836:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1839:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1844:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1845:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1846:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1849:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1850:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1866:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1869:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1874:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1885:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1889:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1895:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1905:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1919:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1924:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1926:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1980:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[1986:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2000:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2001:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2010:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2011:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2020:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2031:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2056:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2059:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2061:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2069:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2074:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2091:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2095:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2101:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2115:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2125:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2136:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2145:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2148:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2156:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2174:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2185:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2190:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2195:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2199:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2211:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2212:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2213:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2217:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2218:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2225:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2226:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2228:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2256:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2261:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2262:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2265:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2266:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2270:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2275:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2281:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2285:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2290:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2295:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2300:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2301:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2302:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2317:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2320:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2324:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2326:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2327:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2345:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2346:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2351:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2355:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2365:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2370:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2375:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2377:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2380:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2382:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2385:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2386:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2387:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2400:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2414:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2424:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2428:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2431:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2433:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2436:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2458:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2466:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2467:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2477:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2489:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2506:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2511:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2520:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2521:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2535:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2536:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2541:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2559:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2563:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2565:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2566:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2568:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2587:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2588:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2589:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2592:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2593:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2595:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2599:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2607:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2629:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2639:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2653:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2654:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2658:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2663:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2668:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2677:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2678:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2684:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2693:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2699:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2726:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2727:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2728:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2729:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2732:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2734:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2743:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2751:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2753:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2768:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2769:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2773:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2783:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2784:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2793:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2802:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2803:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2807:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2817:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2822:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2859:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2862:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2863:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2867:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2868:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2869:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2872:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2873:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2877:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2878:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2882:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2884:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2887:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2892:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2897:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2902:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2907:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2913:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2917:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2922:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2924:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2928:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2932:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2962:]: runtime error: index out of range ogorek_test.go:112: too long line: panic on input[2970:]: runtime error: index out of range ogorek_test.go:112: FRAME Opcode and int: panic on input[12:]: runtime error: index out of range ogorek_test.go:112: SHORTBINUNICODE opcode: panic on input[11:]: runtime error: index out of range ogorek_test.go:112: SHORTBINUNICODE opcode: panic on input[12:]: runtime error: index out of range
-
Kamil Kisiel authored
-
- 16 Feb, 2017 3 commits
-
-
Kamil Kisiel authored
-
Kamil Kisiel authored
-
Kamil Kisiel authored
encoder: More unexpected EOF handling
-
- 15 Feb, 2017 2 commits
-
-
Kirill Smelkov authored
Continuing 995fce81 I've decided to rework unexpected EOF testing to run on truncated versions of all inputs we already have. This uncovered the following: - if an individual op decoder returns err=io.EOF - this is unexpected and should be turned into io.ErrUnexpectedEOF. If we do not do it shows as e.g. ogorek_test.go:91: int: no ErrUnexpectedEOF on [:1] truncated stream: v = <nil> err = &errors.errorString{s:"EOF"} - there was a potential buffer overrun panic in loadString - the code there did not have proper check for line rest length after initial ". The panic looks like this: --- FAIL: TestDecode (0.00s) panic: runtime error: slice bounds out of range [recovered] panic: runtime error: slice bounds out of range goroutine 7 [running]: testing.tRunner.func1(0xc4200725b0) /home/kirr/src/tools/go/go/src/testing/testing.go:624 +0x267 panic(0x5368c0, 0x603020) /home/kirr/src/tools/go/go/src/runtime/panic.go:489 +0x26e github.com/kisielk/og-rek.(*Decoder).loadString(0xc420063428, 0xc42000e153, 0x0) /home/kirr/src/wendelin/neo/g.neo/src/github.com/kisielk/og-rek/ogorek.go:478 +0x22d github.com/kisielk/og-rek.Decoder.Decode(0xc42012fbc0, 0x6248e8, 0x0, 0x0, 0xc42013ac60, 0x0, 0x0, 0x5f2480, 0xc42000e150) /home/kirr/src/wendelin/neo/g.neo/src/github.com/kisielk/og-rek/ogorek.go:166 +0xa83 github.com/kisielk/og-rek.TestDecode(0xc4200725b0) /home/kirr/src/wendelin/neo/g.neo/src/github.com/kisielk/og-rek/ogorek_test.go:89 +0x26c7 testing.tRunner(0xc4200725b0, 0x567618) /home/kirr/src/tools/go/go/src/testing/testing.go:659 +0x98 created by testing.(*T).Run /home/kirr/src/tools/go/go/src/testing/testing.go:701 +0x2df exit status 2 and can be triggered by single-character " input. - we also turn what was previously an "insecure string" into unexpected EOF. The reason here is: code could not find " in the end of the string. This can be for 2 reasons: 1. EOF was reached, or 2. EOL (end of line) was reached unfortunately since we are currently using bufio.Buffer.ReadLine() which does not indicate whether EOL was there or not and strips it from result, we cannot distinguish above cases and properly report "insecure string" in 2 case. However unexpected EOF even for #2 seems a bit reasonable, so I think the change should be ok.
-
Kirill Smelkov authored
This is explicitly stated in bytes.Buffer documentation and is already relyed by ogórek in another place: https://github.com/kisielk/og-rek/blob/c7dbf2e4/ogorek.go#L524
-
- 14 Feb, 2017 5 commits
-
-
Kamil Kisiel authored
-
Kamil Kisiel authored
-
Kamil Kisiel authored
Misc fixes (error + opStop handling)
-
Kirill Smelkov authored
io.EOF handling was already there in instructions decoding loop, but it was simply breaking out of the loop and in the end decode unconditionally was trying to pop top element from stack, and since stack is empty panicked. E.g. for "" input this way: --- FAIL: TestDecode (0.00s) panic: runtime error: index out of range [recovered] panic: runtime error: index out of range goroutine 20 [running]: testing.tRunner.func1(0xc4200765b0) /home/kirr/src/tools/go/go/src/testing/testing.go:624 +0x267 panic(0x5368c0, 0x603010) /home/kirr/src/tools/go/go/src/runtime/panic.go:489 +0x26e github.com/kisielk/og-rek.Decoder.Decode(0xc4200ea5a0, 0x624908, 0x0, 0x0, 0xc4200e6b10, 0x52a180, 0xc4200ee308, 0x0, 0x0) /home/kirr/src/wendelin/neo/g.neo/src/github.com/kisielk/og-rek/ogorek.go:250 +0x4bb github.com/kisielk/og-rek.TestDecode(0xc4200765b0) /home/kirr/src/wendelin/neo/g.neo/src/github.com/kisielk/og-rek/ogorek_test.go:80 +0x232f testing.tRunner(0xc4200765b0, 0x567648) /home/kirr/src/tools/go/go/src/testing/testing.go:659 +0x98 created by testing.(*T).Run /home/kirr/src/tools/go/go/src/testing/testing.go:701 +0x2df exit status 2 Fix it via reworking EOF handling: - if we see EOF and no instructions was decoded so far - just return it to the caller - if we see EOF in the middle of the stream - as valid pickle streams end with Stop opcode - it is unexpected EOF - return it as such. A couple of tests had to be adjusted in TestDecode - as input there was not a valid pickle - not ending with "." (which python pickle decoder also does not decode at all).
-
Kirill Smelkov authored
There was a break already on a `case opStop:` but break inside switch only breaks out of this switch, not outer construct - looks like it was a thinko. So on opStop let's explicitly break out of instruction processing loop. If we do not do so on e.g "I5\n.I7\n.N." input first call to .Decode() returns None (from N.), not 5 and second call to Decode() panics (for this see next patch).
-
- 13 Feb, 2017 1 commit
-
-
Kirill Smelkov authored
Previously errors from underlying .encode() were ignored completely and not returned to callers.
-
- 04 Jan, 2016 1 commit
-
-
Kamil Kisiel authored
Implement opMemoize/opShortBinUnicode/opFrame from 'Protocol 4'
-
- 01 Jan, 2016 1 commit
-
-
Sean DuBois authored
-
- 30 Dec, 2015 3 commits
-
-
Sean DuBois authored
-
Sean DuBois authored
-
Sean DuBois authored
-
- 23 Jun, 2015 4 commits
-
-
Kamil Kisiel authored
-
Kamil Kisiel authored
-
https://github.com/CodeRushing/og-rekKamil Kisiel authored
Merge branch 'feature/FixReadLineBug' of https://github.com/CodeRushing/og-rek into CodeRushing-feature/FixReadLineBug
-
liaoqiang authored
-
- 22 Jun, 2015 1 commit
-
-
Kamil Kisiel authored
fix when the first char is \, it cause UnquoteChar to return syntax e…
-
- 19 Jun, 2015 1 commit
-
-
liaoqiang authored
-