error handling recvfrom(2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi list,

I noted the error handling in recvfrom(2) is wired.
note i will only talk about src_addr and addrlen in the case
src_addr != NULL. I have tested with kernel 5.14.

Function: the kernel shall fill the user supplied structure in src_addr
what should be addrlen in size (should be sizeof struct sockaddr ).

regarding addrlen i found the follwing behavier:

addrlen < 0     errno=EINVAL
0<= addrlen < sizeof struct sockaddr  no errno set

IMHO recvfrom(2) should report an error here also.

while testing i noted that the case addrlen < 0 is checked
after the call. What means if you use a blocking recvfrom,
the call waits for an answer only to report an error afterwards.

IMHO the check for space should be done before.

What is the rationale behind this ?
If not can that be changed ?

note: please reply directly i am not a list member
note: I send also a mail to the man-page list to improve the
      documentation of the current state

CU







[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux