Bug 1828 - Incorrect reassembly of multicast fragments
Summary: Incorrect reassembly of multicast fragments
Status: NEW
Alias: None
Product: TAO
Classification: Unclassified
Component: Real-Time Event Service (show other bugs)
Version: 1.4.1
Hardware: All All
: P3 normal
Assignee: DOC Center Support List (internal)
URL:
Depends on:
Blocks:
 
Reported: 2004-05-26 17:48 CDT by Carlos O'Ryan
Modified: 2005-11-01 12:47 CST (History)
0 users

See Also:


Attachments
A patch for ECG_CDR_Message_Receiver (14.73 KB, patch)
2004-06-07 15:01 CDT, Carlos O'Ryan
Details
Regression test as a tar file (20.00 KB, application/octet-stream)
2004-06-07 15:01 CDT, Carlos O'Ryan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos O'Ryan 2004-05-26 17:48:43 CDT
The code to reassemble multicast fragments has serious bugs in its design and
implementation.  First, it assumes that a remote process will not get reassigned
the same host:port combination after a crash, this is clearly incorrect.  Second
the implementation uses 32-bit unsigned integers, but then performs dumb loops
like this:

for (CORBA::ULong i = purge_first; i <= purge_last; ++i)

this is an infinite loop if purge_last is std::numeric_limits<CORBA::ULong>::max()

to add insult to injury I think the code handles its circular buffer incorrectly.

I have fixes for most of these bugs, and will submit a patch shortly.
Comment 1 Carlos O'Ryan 2004-06-07 15:01:30 CDT
Created attachment 270 [details]
A patch for ECG_CDR_Message_Receiver
Comment 2 Carlos O'Ryan 2004-06-07 15:01:53 CDT
Created attachment 271 [details]
Regression test as a tar file
Comment 3 Carlos O'Ryan 2005-11-01 12:47:00 CST
Did my share, I found the bug, implemented a regression test and submitted a
patch.  I can certainly commit all those things, but I do not have time to
monitor the builds and make sure it works on every silly platform out there. 
Sorry, has to go to the tao-support tar pit.