summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2001-04-08 03:37:01 +0000
committerGurusamy Sarathy <gsar@cpan.org>2001-04-08 03:37:01 +0000
commitaa5a622218b1f8355f628c270a17643f51b9e580 (patch)
tree8300f1c223faf436cc8206f3eac3d20cf87f4307
parentc26ea50d9fd947ede98c9a5c8c05ff72fc15deaa (diff)
downloadperl-aa5a622218b1f8355f628c270a17643f51b9e580.tar.gz
integrate change#9470 from mainline
Subject: Re: [ID 20010215.006] Bad arg length for Socket::unpack_sockaddr_un, length is 14 ... p4raw-link: @9470 on //depot/perl: 36902e12d2b30e9370acddd3ddab927d842061cf p4raw-id: //depot/maint-5.6/perl@9623 p4raw-integrated: from //depot/perl@9605 'copy in' ext/Socket/Socket.xs (@5741..)
-rw-r--r--ext/Socket/Socket.xs5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/Socket/Socket.xs b/ext/Socket/Socket.xs
index 0584e785b5..e08982909b 100644
--- a/ext/Socket/Socket.xs
+++ b/ext/Socket/Socket.xs
@@ -1006,12 +1006,15 @@ unpack_sockaddr_un(sun_sv)
STRLEN sockaddrlen;
char * sun_ad = SvPV(sun_sv,sockaddrlen);
char * e;
-
+# ifndef __linux__
+ /* On Linux sockaddrlen on sockets returned by accept, recvfrom,
+ getpeername and getsockname is not equal to sizeof(addr). */
if (sockaddrlen != sizeof(addr)) {
croak("Bad arg length for %s, length is %d, should be %d",
"Socket::unpack_sockaddr_un",
sockaddrlen, sizeof(addr));
}
+# endif
Copy( sun_ad, &addr, sizeof addr, char );