Bug 97359

Summary: OGL 3D Xscreensavers seg-fault using ATI drivers
Product: [Retired] Red Hat Raw Hide Reporter: John Fujii <john.fujii>
Component: xscreensaverAssignee: Bill Nottingham <notting>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 1.0CC: rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: ia64   
OS: Linux   
Whiteboard:
Fixed In Version: 4.10-3 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-06-13 19:25:06 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:
Attachments:
Description Flags
IA64 Xscreensaver patch for Var Args NULL problem none

Description John Fujii 2003-06-13 16:42:43 UTC
Description of problem:

Var Args problem in function call.  On 64-bit boxes, the NULL is not
correctly promoted causing a segmentation fault during execution of
a number of 3D OpenGL Xscreensavers.

Version-Release number of selected component (if applicable):

We've seen this on AW 2.1 and the current Taroon Bits - probably
should be cross listed and fixed in both.

Note: this means Advanced Workstation 2.1 and Advanced Workstation 3.0
           for IA64 only

How reproducible:

Currently most reproducible with an OEM 3D graphics driver, although 
debuggers can also show the problem

---

Problem occurs in module hacks/screenhack.c at line 673:

          new = XtVaAppCreateShell (progname, progclass,
                                    topLevelShellWidgetClass, dpy,
                                    .....
                                    XtNinput, True,  /* for WM_HINTS */
                                    0);

The trailing "0" (NULL) does not get correctly promoted to a
64-bit NULL on IA64.  Thus, we get a segmentation fault under
an IA64 run under certain conditions.  The segmentation error
occurs in libXt in the call XtVaAppCreateShell().

Recommend making "0" be cast explicitly to long constant (as in "0L")
for IA64.

Thus, this becomes:

          new = XtVaAppCreateShell (progname, progclass,
                                    topLevelShellWidgetClass, dpy,
                                    .....
                                    XtNinput, True,  /* for WM_HINTS */
                                    0L);

Comment 1 John Fujii 2003-06-13 16:44:39 UTC
Created attachment 92389 [details]
IA64 Xscreensaver patch for Var Args NULL problem

This is a proposed potential fix for the described condition.

Comment 2 Bill Nottingham 2003-06-13 19:25:06 UTC
Fixed in 4.10-3, thx. Just changed it from 0L to NULL.