[bugs:#1183] unpackOSC crahes when receiving (corrupted ?) blob

Status: open
Group: v0.46
Created: Mon Jan 05, 2015 04:30 PM UTC by Antoine Villeret
Last Updated: Mon Jan 05, 2015 04:30 PM UTC
Owner: Martin Peach

hello,

with two arduinos sending SLIP encoded data (mostly OSC blob) to Pd over USB (thanks to [comport]).
I experienced crashes when I open 2 times the same port (yes this is weird and at first unwanted, but I did that, sorry :-) ).

I don't know how [comport] could open the same device twice, but I think this leads to corrupted data.
[unpackOSC] says a lot of error like this :

unpackOSC: DataAfterAlignedString: Incorrectly padded string
unpackOSC: Bad message name string: Dropping entire message.
unpackOSC: Packet size (217) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (146) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (278) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 176 in bundle (only 24 bytes left in entire bundle)
unpackOSC: Packet size (275) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (137) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (95) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (214) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (130) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (133) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (126) not a multiple of 4 bytes: dropping packet
unpackOSC: DataAfterAlignedString: Incorrectly padded string
unpackOSC: Bad message name string: Dropping entire message.
unpackOSC: Bad size count 23294720 in bundle (only 136 bytes left in entire bundle)
unpackOSC: Packet size (94) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (150) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (273) not a multiple of 4 bytes: dropping packet
unpackOSC: Path doesn't begin with "/", dropping message
unpackOSC: Packet size (137) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (91) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (150) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (271) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (131) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (91) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (159) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (254) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (138) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (170) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (91) not a multiple of 4 bytes: dropping packet
unpackOSC: Path doesn't begin with "/", dropping message
unpackOSC: Packet size (253) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (150) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 60 in bundle (only 56 bytes left in entire bundle)
unpackOSC: Packet size (126) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 1684825344 in bundle (only 156 bytes left in entire bundle)
unpackOSC: Packet size (89) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 71 in bundle (not a multiple of 4)
unpackOSC: Packet size (291) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (69) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (126) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (159) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (237) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (169) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 795046656 in bundle (only 136 bytes left in entire bundle)
unpackOSC: DataAfterAlignedString: Unreasonably long string
unpackOSC: Bad message name string: Dropping entire message.
unpackOSC: Bad size count 745105769 in bundle (not a multiple of 4)
unpackOSC: Packet size (147) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 60 in bundle (only 52 bytes left in entire bundle)
unpackOSC: Packet size (130) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (327) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (23) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (131) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (306) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (111) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (249) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (25) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (125) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 1651863140 in bundle (only 136 bytes left in entire bundle)
unpackOSC: Packet size (131) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (101) not a multiple of 4 bytes: dropping packet
unpackOSC: Path doesn't begin with "/", dropping message
unpackOSC: PrintHeuristicallyTypeGuessedArgs: indeterminate type: 0x6223692c xx
unpackOSC: PrintHeuristicallyTypeGuessedArgs: indeterminate type: 0x6c646e75 xx
unpackOSC: Bad size count 1694498816 in bundle (only 116 bytes left in entire bundle)
unpackOSC: Packet size (179) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (121) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 60 in bundle (only 40 bytes left in entire bundle)
unpackOSC: Packet size (166) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (131) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (298) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (165) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (103) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 1128988672 in bundle (only 108 bytes left in entire bundle)
unpackOSC: Packet size (61) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (131) not a multiple of 4 bytes: dropping packet
unpackOSC: Path doesn't begin with "/", dropping message
unpackOSC: Packet size (307) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (111) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 60 in bundle (only 48 bytes left in entire bundle)
unpackOSC: Packet size (125) not a multiple of 4 bytes: dropping packet
unpackOSC: Path doesn't begin with "/", dropping message
unpackOSC: Packet size (335) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (103) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (123) not a multiple of 4 bytes: dropping packet
unpackOSC: DataAfterAlignedString: Incorrectly padded string
unpackOSC: Bad message name string: Dropping entire message.
unpackOSC: Packet size (301) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (182) not a multiple of 4 bytes: dropping packet
unpackOSC: Path doesn't begin with "/", dropping message
unpackOSC: Packet size (150) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (138) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (127) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (313) not a multiple of 4 bytes: dropping packet
unpackOSC: DataAfterAlignedString: Incorrectly padded string
unpackOSC: Bad message name string: Dropping entire message.
unpackOSC: Packet size (106) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (93) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 20 in bundle (only 8 bytes left in entire bundle)
unpackOSC: Packet size (266) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (137) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (133) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 60 in bundle (only 44 bytes left in entire bundle)
unpackOSC: Packet size (250) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (141) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (142) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (250) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (170) not a multiple of 4 bytes: dropping packet
unpackOSC: Path doesn't begin with "/", dropping message
unpackOSC: Bad size count 75 in bundle (not a multiple of 4)
unpackOSC: Packet size (130) not a multiple of 4 bytes: dropping packet
unpackOSC: Bad size count 60 in bundle (only 28 bytes left in entire bundle)
unpackOSC: Packet size (169) not a multiple of 4 bytes: dropping packet
unpackOSC: DataAfterAlignedString: Incorrectly padded string
unpackOSC: Bad message name string: Dropping entire message.
unpackOSC: Packet size (313) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (155) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (131) not a multiple of 4 bytes: dropping packet
unpackOSC: DataAfterAlignedString: Unreasonably long string
unpackOSC: Bad message name string: Dropping entire message.
unpackOSC: Bad size count 16777216 in bundle (only 120 bytes left in entire bundle)
unpackOSC: Packet size (131) not a multiple of 4 bytes: dropping packet
unpackOSC: Packet size (159) not a multiple of 4 bytes: dropping packet

and then crashes with this backtrace :

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe0d263ec in ?? ()
   from /home/antoine/Dropbox/das_Korperrauschen/dev/pd/test/../pd-externals/osc/unpackOSC.pd_linux
(gdb) thread apply all bt

Thread 1 (Thread 0x7ffff7fbf740 (LWP 25736)):
#0  0x00007fffe0d263ec in ?? ()
   from /home/antoine/Dropbox/das_Korperrauschen/dev/pd/test/../pd-externals/osc/unpackOSC.pd_linux
#1  0x00007fffe0d25a2d in ?? ()
   from /home/antoine/Dropbox/das_Korperrauschen/dev/pd/test/../pd-externals/osc/unpackOSC.pd_linux
#2  0x000000000047334a in outlet_list ()
#3  0x00007fffe0b21d91 in slipdec_dump ()
   from /home/antoine/Dropbox/das_Korperrauschen/dev/pd/test/../pd-externals/mrpeach/slipdec.pd_linux
#4  0x00007fffe0b22198 in slipdec_float ()
   from /home/antoine/Dropbox/das_Korperrauschen/dev/pd/test/../pd-externals/mrpeach/slipdec.pd_linux
#5  0x000000000047322f in outlet_float ()
#6  0x0000000000472481 in inlet_float ()
#7  0x000000000047322f in outlet_float ()
#8  0x00007fffe0f2ca51 in ?? ()
   from /home/antoine/Dropbox/das_Korperrauschen/dev/pd/test/../pd-externals/comport/comport.pd_linux
#9  0x00000000004817a6 in m_mainloop ()
#10 0x00007ffff6deeec5 in __libc_start_main (main=0x411ec0 <main>, argc=2, 
---Type <return> to continue, or q <return> to quit--- 
    argv=0x7fffffffde98, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fffffffde88) at libc-start.c:287
#11 0x0000000000411eee in _start ()
(gdb)

So I guess the crash is due to corrupted data, but a software should never crash, even though I put bananas under its feet and I send tomatoes in its face... :-)

I attached a small patch with which I can reproduce the crash.


Sent from sourceforge.net because pd-dev@lists.iem.at is subscribed to https://sourceforge.net/p/pure-data/bugs/

To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/pure-data/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list.