2002-11-08 21:55:02

by Paul Larson

[permalink] [raw]
Subject: recvfrom/recvmsg


I was looking through the ltp test recvfrom01 and saw that test #4 is
failing where it did not used to fail. I think the test program is
partially at fault here since it was expecting it to pass when you call
recvfrom with fromlen == -1.

Right now (2.5.46-bk current) I'm getting -1, errno 22 returned, but in
2.5.46 it was passing without error. Was this change intentional
(probably) and is that the correct errno to return. I checked SuS, but
I don't see anything related to that exact condition.

There is another test in the same program that also looks like it should
be failing. Recvfrom, testcase 3 tries to do a recvfrom with (struct
sockaddr *)-1 passed as the from buffer. Right now, it is passing
without an error, but that doesn't seem correct.

The same exact situation happens in recvmsg01.

Thanks,
Paul Larson


Attachments:
signature.asc (240.00 B)
This is a digitally signed message part

2002-11-11 03:54:45

by David Miller

[permalink] [raw]
Subject: Re: recvfrom/recvmsg

From: Paul Larson <[email protected]>
Date: 08 Nov 2002 15:59:24 -0600

Right now (2.5.46-bk current) I'm getting -1, errno 22 returned, but in
2.5.46 it was passing without error. Was this change intentional
(probably) and is that the correct errno to return. I checked SuS, but
I don't see anything related to that exact condition.

No idea. But -1 is invalid.

There is another test in the same program that also looks like it should
be failing. Recvfrom, testcase 3 tries to do a recvfrom with (struct
sockaddr *)-1 passed as the from buffer. Right now, it is passing
without an error, but that doesn't seem correct.

If namelen is zero, no attempt is made to access the sockaddr pointer.
Returning -EFAULT is always variable and no system call can guarentee
to return this so no test should require it to be returned.