Smarteon / loxone-java

Java implementation of the Loxone™ communication protocol (Web Socket)
BSD 3-Clause "New" or "Revised" License
15 stars 10 forks source link

Wrong parsing of EVENT_TEXT #15

Closed jimirocks closed 6 years ago

jimirocks commented 6 years ago

[WebSocketConnectReadThread-15] TRACE cz.smarteon.loxone.LoxoneWebsocketClient - Incoming message header MessageHeader{kind=EVENT_TEXT, sizeEstimated=false, messageSize=2844}[WebSocketConnectReadThread-15] ERROR cz.smarteon.loxone.LoxoneWebsocketClient - Can't read binary message e446df0e7e01fbf6ffff4f9f46c06fba000000000000000000000000000000000f010000303a6d6f64653d2d333b6e616d653d5c224661627269632050726f74656374696f6e5c222c313a6d6f64653d2d343b6e616d653d5c225761726d65725c222c323a6d6f64653d2d353b6e616d653d5c22436f6f6c65725c222c333a6d6f64653d333b6e616d653d5c224d6f6e6461795c222c343a6d6f64653d343b6e616d653d5c22547565736461795c222c353a6d6f64653d353b6e616d653d5c225765646e65736461795c222c363a6d6f64653d363b6e616d653d5c2254687572736461795c222c373a6d6f64653d373b6e616d653d5c224672696461795c222c383a6d6f64653d383b6e616d653d5c2253617475726461795c222c393a6d6f64653d393b6e616d653d5c2253756e6461795c2200e446df0e7e01fcf6ffff4f9f46c06fba000000000000000000000000000000000f010000303a6d6f64653d2d333b6e616d653d5c224661627269632050726f74656374696f6e5c222c313a6d6f64653d2d343b6e616d653d5c225761726d65725c222c323a6d6f64653d2d353b6e616d653d5c22436f6f6c65725c222c333a6d6f64653d333b6e616d653d5c224d6f6e6461795c222c343a6d6f64653d343b6e616d653d5c22547565736461795c222c353a6d6f64653d353b6e616d653d5c225765646e65736461795c222c363a6d6f64653d363b6e616d653d5c2254687572736461795c222c373a6d6f64653d373b6e616d653d5c224672696461795c222c383a6d6f64653d383b6e616d653d5c2253617475726461795c222c393a6d6f64653d393b6e616d653d5c2253756e6461795c2200a2e78b1050012ce4ffff79894c5e899100000000000000000000000000000000050000005b3737385d000000a2e78b1050012de4ffff79894c5e899100000000000000000000000000000000060100005b7b226e616d65223a226d6f74696f6e222c226964223a312c22737461746963223a66616c73652c2275736564223a337d2c7b226e616d65223a224c45442073706f74222c226964223a322c22737461746963223a66616c73657d2c7b226e616d65223a2243656e7472652073706f7473222c226964223a332c22737461746963223a66616c73657d2c7b226e616d65223a224c45442063656e747265222c226964223a342c22737461746963223a66616c73657d2c7b226e616d65223a22427269676874222c226964223a3737372c22737461746963223a66616c73657d2c7b226e616d65223a224f6666222c226964223a3737382c22737461746963223a747275657d5d0000a2e78b1050012ee4ffff79894c5e899100000000000000000000000000000000110000005b312c322c332c342c3737372c3737385d000000a2e78b1050012fe4ffff79894c5e899100000000000000000000000000000000020000005b5d0000e446df0e0801baf6ffffeb260b0bafcd000000000000000000000000000000000f010000303a6d6f64653d2d333b6e616d653d5c224661627269632050726f74656374696f6e5c222c313a6d6f64653d2d343b6e616d653d5c225761726d65725c222c323a6d6f64653d2d353b6e616d653d5c22436f6f6c65725c222c333a6d6f64653d333b6e616d653d5c224d6f6e6461795c222c343a6d6f64653d343b6e616d653d5c22547565736461795c222c353a6d6f64653d353b6e616d653d5c225765646e65736461795c222c363a6d6f64653d363b6e616d653d5c2254687572736461795c222c373a6d6f64653d373b6e616d653d5c224672696461795c222c383a6d6f64653d383b6e616d653d5c2253617475726461795c222c393a6d6f64653d393b6e616d653d5c2253756e6461795c2200e446df0e0801bbf6ffffeb260b0bafcd000000000000000000000000000000000f010000303a6d6f64653d2d333b6e616d653d5c224661627269632050726f74656374696f6e5c222c313a6d6f64653d2d343b6e616d653d5c225761726d65725c222c323a6d6f64653d2d353b6e616d653d5c22436f6f6c65725c222c333a6d6f64653d333b6e616d653d5c224d6f6e6461795c222c343a6d6f64653d343b6e616d653d5c22547565736461795c222c353a6d6f64653d353b6e616d653d5c225765646e65736461795c222c363a6d6f64653d363b6e616d653d5c2254687572736461795c222c373a6d6f64653d373b6e616d653d5c224672696461795c222c383a6d6f64653d383b6e616d653d5c2253617475726461795c222c393a6d6f64653d393b6e616d653d5c2253756e6461795c220097002a10cf0273edffff6ee0cbfa8da6000000000000000000000000000000009500000032303138303630333132333731357c32303138303630353037323732317c32303138303630353139333434347c32303138303630383138343731367c32303138303630383230313131397c32303138303630393131333935367c32303138303631323037353630347c32303138303631323136323934347c32303138303631323139313435367c3230313830363133323031323239000000b2e78b102400df23ffffad53c181931700000000000000000000000000000000050000005b3737385d000000b2e78b102400e023ffffad53c181931700000000000000000000000000000000820000005b7b226e616d65223a224d6f74696f6e222c226964223a312c22737461746963223a66616c73652c2275736564223a317d2c7b226e616d65223a22427269676874222c226964223a3737372c22737461746963223a66616c73657d2c7b226e616d65223a224f6666222c226964223a3737382c22737461746963223a747275657d5d0000b2e78b102400e123ffffad53c1819317000000000000000000000000000000000b0000005b312c3737372c3737385d00b2e78b102400e223ffffad53c181931700000000000000000000000000000000020000005b5d00006be78b10c00269cbffff45faed4e2a8c00000000000000000000000000000000050000005b3737385d0000006be78b10c0026acbffff45faed4e2a8c00000000000000000000000000000000820000005b7b226e616d65223a224d6f74696f6e222c226964223a312c22737461746963223a66616c73652c2275736564223a317d2c7b226e616d65223a22427269676874222c226964223a3737372c22737461746963223a66616c73657d2c7b226e616d65223a224f6666222c226964223a3737382c22737461746963223a747275657d5d00006be78b10c0026bcbffff45faed4e2a8c000000000000000000000000000000000b0000005b312c3737372c3737385d006be78b10c0026ccbffff45faed4e2a8c00000000000000000000000000000000020000005b5d00006ae7df0eb803e78dffffd7c57a8eaa7b0000000000000000000000000000000013010000303a6d6f64653d303b6e616d653d5c225075626c696320486f6c696461795c222c313a6d6f64653d313b6e616d653d5c22486f6c696461795c222c323a6d6f64653d323b6e616d653d5c225363686f6f6c20486f6c69646179735c222c333a6d6f64653d333b6e616d653d5c224d6f6e6461795c222c343a6d6f64653d343b6e616d653d5c22547565736461795c222c353a6d6f64653d353b6e616d653d5c225765646e65736461795c222c363a6d6f64653d363b6e616d653d5c2254687572736461795c222c373a6d6f64653d373b6e616d653d5c224672696461795c222c383a6d6f64653d383b6e616d653d5c2253617475726461795c222c393a6d6f64653d393b6e616d653d5c2253756e6461795c2200ffe57d0e8503fe93ffffb304361e1e650000000000000000000000000000000000000000e64779102a01169dffffb304361e1e650000000000000000000000000000000000000000 java.nio.BufferUnderflowException at java.nio.Buffer.nextGetIndex(Buffer.java:506) at

jimirocks commented 6 years ago

discovered by #13

jimirocks commented 6 years ago

The root cause is the wrong handling of TextEvent carrying zero-length text