Follow us on Google+ Follow us on Facebook Follow us on Twitter

Opened 7 years ago

Closed 7 years ago

#270 closed defect (fixed)

udp_sendto_message() leaves data_fragment_size uninitialized

Reported by: Jakub Jermář Owned by: Petr Koupy
Priority: major Milestone: 0.5.0
Component: helenos/net/udp Version:
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

udp_sendto_message() is supposed to set its output argument data_fragment_size uninitialized, but it never does so.

Attachments (1)

ticket270.patch (2.1 KB) - added by Petr Koupy 7 years ago.

Download all attachments as: .zip

Change History (5)

comment:1 Changed 7 years ago by Jakub Jermář

Milestone: 0.4.30.5.0

comment:2 Changed 7 years ago by Petr Koupy

Owner: set to Petr Koupy
Status: newassigned

Changed 7 years ago by Petr Koupy

Attachment: ticket270.patch added

comment:3 Changed 7 years ago by Petr Koupy

Fixed uninitialized out variable inside udp_sendto_message(). The only caller -
udp_process_client_messages() - was working correctly just because it has
initialized the parameter by itself before calling udp_sendto_message().
Actual correction seems to be quite trivial. NULL initialization was simply
moved from one place to another.

comment:4 Changed 7 years ago by Jakub Jermář

Resolution: fixed
Status: assignedclosed

Actually, the caller can receive both 0 and an actual data fragment size. If it receives 0, it does not attempt to modify its current cached value of data fragment size. On the other hand, a non-zero value will result in the client updating its value.

The meaning of data fragment size is that it tells the socket layer what is the maximum data size that can be sent over the lower protocol layers without causing fragmentation, eliminating thus some number of extra data copies.

I set this to what IP told UDP is the IP's maximum content size. Note that there is some commented code in UDP which seems to be able to determine the device's MTU, in which case (and if the code was not commented out) the MTU size would be used instead.

Fixed in changeset:mainline,914.

Note: See TracTickets for help on using tickets.