A number of the subroutines defined in /usr/lib/perl5/5.00503/i386-linux/bits/socket.ph introduce infinite loops, such that if they are included the program will recurse until it runs out of memory. The following patch shows where the problems are and how to fix them. --- socket.ph~ Sun Nov 21 21:33:51 1999 +++ socket.ph Tue Dec 7 22:33:09 1999 @@ -9,12 +9,12 @@ eval 'sub __need_NULL {1;}' unless defined(&__need_NULL); require 'stddef.ph'; require 'sys/types.ph'; - eval 'sub SOCK_STREAM () { &SOCK_STREAM;}' unless defined(&SOCK_STREAM); - eval 'sub SOCK_DGRAM () { &SOCK_DGRAM;}' unless defined(&SOCK_DGRAM); - eval 'sub SOCK_RAW () { &SOCK_RAW;}' unless defined(&SOCK_RAW); - eval 'sub SOCK_RDM () { &SOCK_RDM;}' unless defined(&SOCK_RDM); - eval 'sub SOCK_SEQPACKET () { &SOCK_SEQPACKET;}' unless defined(&SOCK_SEQPACKET); - eval 'sub SOCK_PACKET () { &SOCK_PACKET;}' unless defined(&SOCK_PACKET); + eval 'sub SOCK_STREAM () { 1;}' unless defined(&SOCK_STREAM); + eval 'sub SOCK_DGRAM () { 2;}' unless defined(&SOCK_DGRAM); + eval 'sub SOCK_RAW () { 3;}' unless defined(&SOCK_RAW); + eval 'sub SOCK_RDM () { 4;}' unless defined(&SOCK_RDM); + eval 'sub SOCK_SEQPACKET () { 5;}' unless defined(&SOCK_SEQPACKET); + eval 'sub SOCK_PACKET () { 10;}' unless defined(&SOCK_PACKET); eval 'sub PF_UNSPEC () {0;}' unless defined(&PF_UNSPEC); eval 'sub PF_LOCAL () {1;}' unless defined(&PF_LOCAL); eval 'sub PF_UNIX () { &PF_LOCAL;}' unless defined(&PF_UNIX); @@ -74,14 +74,14 @@ eval 'sub SOL_X25 () {262;}' unless defined(&SOL_X25); eval 'sub SOMAXCONN () {128;}' unless defined(&SOMAXCONN); require 'bits/sockaddr.ph'; - eval 'sub MSG_OOB () { &MSG_OOB;}' unless defined(&MSG_OOB); - eval 'sub MSG_PEEK () { &MSG_PEEK;}' unless defined(&MSG_PEEK); - eval 'sub MSG_DONTROUTE () { &MSG_DONTROUTE;}' unless defined(&MSG_DONTROUTE); + eval 'sub MSG_OOB () { 1;}' unless defined(&MSG_OOB); + eval 'sub MSG_PEEK () { 2;}' unless defined(&MSG_PEEK); + eval 'sub MSG_DONTROUTE () { 4;}' unless defined(&MSG_DONTROUTE); if(defined(&__USE_GNU)) { eval 'sub MSG_TRYHARD () { &MSG_DONTROUTE;}' unless defined(&MSG_TRYHARD); } - eval 'sub MSG_CTRUNC () { &MSG_CTRUNC;}' unless defined(&MSG_CTRUNC); - eval 'sub MSG_PROXY () { &MSG_PROXY;}' unless defined(&MSG_PROXY); + eval 'sub MSG_CTRUNC () { 8;}' unless defined(&MSG_CTRUNC); + eval 'sub MSG_PROXY () { 16;}' unless defined(&MSG_PROXY); if(!defined (defined(&__STRICT_ANSI__) ? &__STRICT_ANSI__ : 0) && defined (defined(&__GNUC__) ? &__GNUC__ : 0) && (defined(&__GNUC__) ? &__GNUC__ : 0) >= 2) { } if(!defined (defined(&__STRICT_ANSI__) ? &__STRICT_ANSI__ : 0) && defined (defined(&__GNUC__) ? &__GNUC__ : 0) && (defined(&__GNUC__) ? &__GNUC__ : 0) >= 2) { @@ -120,9 +120,9 @@ eval 'sub _EXTERN_INLINE () { &extern &__inline;}' unless defined(&_EXTERN_INLINE); } } - eval 'sub SCM_RIGHTS () { &SCM_RIGHTS;}' unless defined(&SCM_RIGHTS); + eval 'sub SCM_RIGHTS () { 1;}' unless defined(&SCM_RIGHTS); if(defined(&__USE_BSD)) { - eval 'sub SCM_CREDENTIALS () { &SCM_CREDENTIALS;}' unless defined(&SCM_CREDENTIALS); + eval 'sub SCM_CREDENTIALS () { 2;}' unless defined(&SCM_CREDENTIALS); } require 'asm/socket.ph'; }
*** This bug has been marked as a duplicate of 2297 ***