Bug 2297
Summary: | sys/socket.ph croaks | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | mcr |
Component: | perl | Assignee: | Crutcher Dunnavant <crutcher> |
Status: | CLOSED RAWHIDE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 5.2 | CC: | cls, mcr, russell |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2000-01-18 20:38:48 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
mcr
1999-04-21 00:06:05 UTC
Reply to this message with the fixed socketbits.h and neither of us has to use this silly web interface :-) *** Bug 4633 has been marked as a duplicate of this bug. *** This problem has been noted in a couple of other bug reports but they were for RH5.2 or not specific to this problem. H2ph cannot handle the way that glibc embeds defines inside enumerations. This code snippet from <bits/socket.h> shows the cause of the problem: enum __socket_type { SOCK_STREAM = 1, /* Sequenced, reliable, connection-based byte streams. */ #define SOCK_STREAM SOCK_STREAM SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams of fixed maximum length. */ Somehow, h2ph either misses the SOCK_STREAM = 1 or overrides it with #define SOCK_STREAM SOCK_STREAM. This causes the subsequent bits/socket.ph to have the follow function: eval 'sub SOCK_STREAM () { &SOCK_STREAM;}' unless defined(&SOCK_STREAM); Which is obviously wrong and causes an infinite loop to occur. With some programs (aub was the only one I explicitly tested), this causes perl eat memory and eventually lock up the machine. A brief glance at the srpm in rawhide shows that no patch has been applied to h2ph so it probably won't fix this problem. *** Bug 7676 has been marked as a duplicate of this bug. *** *** Bug 4183 has been marked as a duplicate of this bug. *** *** Bug 8575 has been marked as a duplicate of this bug. *** The current Raw Hide perl defines this in socket.ph: eval 'sub SOCK_STREAM () {1;}' unless defined(&SOCK_STREAM); This perl script: require "asm/socket.ph"; print SOCK_STREAM(); now prints "1". |