Assert while decompression on TCP profile
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
rohc | Status tracked in Rohc-main | |||||
Rohc-1.7.x |
Won't Fix
|
Medium
|
Didier Barvaux | |||
Rohc-main |
Fix Released
|
Medium
|
Didier Barvaux |
Bug Description
I try to code test program using librohc
ver: main branch
Tunnel between 2 linux (64 bit)
run only one TCP session (SSH) with cmatrix (just for create traffic)
Mode: ROHC_U_MODE
Got assert after ~1hour of work. (~1Gb traffic)
[rfc4996.c:426 d_ip_id_lsb()] behavior = 0, k = 4, p = 3, context_ip_id =
0xbb43, value = 0x0003, msn = 0x98e2
[rfc4996.c:381 d_c_lsb()] num_lsb = 4, offset_param = 3, context_value =
0x2261, original_value = 0x2262
[rfc4996.c:391 d_c_lsb()] 0x225e < value (0x2262) < 0x226d => return 0x2
[rfc4996.c:437 d_ip_id_lsb()] new ip_id = 0xbb44, ip_id_offset = 0x0002,
value = 0x0003
tandemx: rfc4996.c:438: d_ip_id_lsb: Assertion `ip_id_offset == value'
failed.
Aborted (core dumped)
More logs: http://
If need, I can give more logs (30Mb)
tags: | added: library tcp |
I hit the very same bug last weekend by running the fuzzer as follow: rohc_fuzzer replay 1417374848
$ ./app/fuzzer/
(the fix for bug #1219419 is required to hit this one).
The problem is due to IP-ID encoding in the TCP profile. Both the compressor and decompressors do not implement this encoding scheme correctly. I fixed the decompressor part during last weekend, but the compressor part is required to fully fix the problem with seq_X packets. I'll resume my work on this problem next weekend.