Bug 187069
Summary: | Crash on start-up when VPNC running | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Tim Waugh <twaugh> |
Component: | vnc | Assignee: | Radek Vokál <rvokal> |
Status: | CLOSED RAWHIDE | QA Contact: | David Lawrence <dkl> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 5 | CC: | esteban.xandri, karl, nphilipp |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | 4.1.1-38 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2006-05-10 14:19:19 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
Tim Waugh
2006-03-28 08:18:24 UTC
I am having the same problem. This also occurs when using openvpn (from extras). I see this conflict with opevpn as well. The specific symptom is that getifaddrs() returns a set of interfaces within which the "tun0" entry has a null "ifa_addr" pointer. There are 3 possible places where the real bug may lie: [1] In VNC's unix/xorg-server-1.0.1/os/access.c:DefineSelf()'s failure to handle this case, if it is normal; [2] In getifaddrs() having dared to return such a null pointer, if it is not normal (in which case, this is actually a glibc bug?); or [3] In the kernel's tun.c tunnel driver, if it failed to fill in returned structures properly when queried for data about tun0. I don't have time to dive deeply into this, but a simple-minded fix for the first case is this (from the -36 source RPM): --- unix/xorg-server-1.0.1/os/access.c~ 2005-11-08 01:33:30.000000000 -0500 +++ unix/xorg-server-1.0.1/os/access.c 2006-04-26 20:58:33.000000000 -0400 @@ -980,7 +980,9 @@ continue; #endif /* DNETCONN */ len = sizeof(*(ifr->ifa_addr)); - family = ConvertAddr(ifr->ifa_addr, &len, (pointer *)&addr); + family = (ifr->ifa_addr ? + ConvertAddr(ifr->ifa_addr, &len, (pointer *)&addr) + : -1); if (family == -1 || family == FamilyLocal) continue; #if defined(IPv6) && defined(AF_INET6) This works, but my suspicion is that the real problem is in getifaddrs(). It seems to me that it is unreasonable to be returned a list of active interfaces which fail to contain valid pointers to addressing structures. I was trying to find out, what the reason of the NULL pointer was. Whatever it was -- if it is really a bug (to return NULL in this case), I believe we will soon find out. The problem now should be fixed in version 4.1.1-38. *** Bug 187607 has been marked as a duplicate of this bug. *** |