Bug in libgcj UDP network classes

Michael Koch konqueror@gmx.de
Thu Nov 20 20:36:00 GMT 2003


On Thu, Nov 20, 2003 at 09:34:10PM +0100, Norbert Frese wrote:
> Hi list!
>> I have found a bug in the libgcj network-classes:
>> It seems that the length of data of an incoming UDP packet gets
> overwritten by other UDP packets queueing up on the same socket. 
> -> When you call DatagramSocket.receive() the wrong number of bytes is 
> copied to the byte[] buffer.
>> I have written a little test-program 'UDPTest', which sends two packets
> in an endless loop to itself:
>> packet1 contains the String: "Hello World 1234567890 ++++++++++++++"
> packet2 contains the String: "World Hello 0987654321"
>> UDPTest output gcj (3.4 from CVS, checked out today):
>> $ ./udptest_gcj
> got packet:Hello World 1234567890 ++++++++++++++ length=37
> got packet:World Hello 0987654321 length=22
> got packet:Hello World 1234567890 length=22
> got packet:World Hello 0987654321 length=22
> got packet:Hello World 1234567890 length=22
> got packet:World Hello 0987654321 length=22
> got packet:Hello World 1234567890 length=22
> got packet:World Hello 0987654321 length=22
> got packet:Hello World 1234567890 length=22
> got packet:World Hello 0987654321 length=22
>> UDPTest output sun jre:
>> $ java UDPTest
> got packet:Hello World 1234567890 ++++++++++++++ length=37
> got packet:World Hello 0987654321 length=22
> got packet:Hello World 1234567890 ++++++++++++++ length=37
> got packet:World Hello 0987654321 length=22
> got packet:Hello World 1234567890 ++++++++++++++ length=37
> got packet:World Hello 0987654321 length=22
> got packet:Hello World 1234567890 ++++++++++++++ length=37
> got packet:World Hello 0987654321 length=22
> got packet:Hello World 1234567890 ++++++++++++++ length=37
> got packet:World Hello 0987654321 length=22
>> Attached is the source of UDPTest.

I'm looking into it as I'm currently at that code anyway.
Thx for testing and reporting.
Michael


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /