Closed vlmarek closed 2 weeks ago
This needs fixing upstream in Socket
Oh, silly me, thank you :)
Ah, I should not have closed the bug, merely reassing to Socket
Sorry, I don't see how to re-assign this ticket. Or change the queue
I have created https://rt.cpan.org/Ticket/Display.html?id=152866. @leonerd can you examine this there? Thanks.
This used to work, on recent Solaris it reports an error:
Bad arg length for Socket::unpack_sockaddr_un, length is 18, should be 110 at /usr/perl5/5.38/lib/i86pc-solaris-thread-multi-64/Socket.pm line 878.
Description Solaris used to have fixed size socket address length. And perl did compare that address lenght to sizeof(sockaddr_un). As seen in
https://github.com/Perl/perl5/blob/d15f6e9d45077d8ecabf346379f17906fdb9b061/cpan/Socket/Socket.xs#L954
But with recent change Solaris implementation started to behave the same as in Linux - that is the size is not predetermined, but instead silently drops any characters which do not fit into the structure. That means that the above mentioned test it now fails.
Instead it is needed to skip the check completely as it is done on Linux and others.
The line
938 # if defined(linux) || defined(CYGWIN) || defined(HAS_SOCKADDR_SA_LEN) has to be changed to 938 # if defined(linux) || defined(CYGWIN) || defined(sun) || defined(HAS_SOCKADDR_SA_LEN)
Should I create pull request for that?
Thank you __ Vlad