| Summary: | seg fault when initializing DMX screens | ||||||
|---|---|---|---|---|---|---|---|
| Product: | xorg | Reporter: | Lee Leahu <6khRTwRnE3AB> | ||||
| Component: | Server/DDX/dmx | Assignee: | dmx-bugs | ||||
| Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
| Severity: | normal | ||||||
| Priority: | medium | ||||||
| Version: | git | ||||||
| Hardware: | Other | ||||||
| OS: | All | ||||||
| Whiteboard: | |||||||
| i915 platform: | i915 features: | ||||||
| Attachments: |
|
||||||
Gentoo Linux
Linux 2.6.27 x86 / 32bit
GCC 4.3.2
GLIBC 2.8
Xnest :0
Xnest :1
Xdmx :2 -br -ac -configfile ./xdmx-config +xinerama
The contents of the 'xdmx-config' file:
-----------------------------------------------------
virtual screen0 2560x1024 {
display :0 1280x1024 @0x0;
display :1 1280x1024 @1280x0;
}
-----------------------------------------------------
I noticed this error today when compiling xorg-server: dmxscrinit.c:71: warning: initialization from incompatible pointer type dmxscrinit.c:70: warning: 'dmxGCPrivateKeyIndex' defined but not used Created attachment 19837 [details] [review] initialize dmxGCPrivateKey correctly Patch against the latest git commit. dmxGCPrivateKey is not initialized correctly as a global variable at compile time. This patch correctly initializes it using dmxGCPrivateKeyIndex. Confirming still broken in latest GIT ... 736075094346966402213f891628424ccb77bfeb (2009-01-07 22:12 CST) Still broken in GIT as of commit a38ca0063c91ef221f20bf0c4ac0dc84ce07d557 Pushed to git master for upcoming Xorg 1.7 release - thanks for the fix: hw/dmx/dmxscrinit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit b159a98f7fbdb3f8b337cd1bfd2ff27312856619 Author: Lee Leahu <freedesktop-bugs@dyweni.com> Date: Thu Oct 23 21:03:57 2008 -0500 seg fault when initializing DMX screens X.Org Bugzilla #18086: http://bugs.freedesktop.org/show_bug.cgi?id=18086 Patch #19837: http://bugs.freedesktop.org/attachment.cgi?id=19837 diff --git a/hw/dmx/dmxscrinit.c b/hw/dmx/dmxscrinit.c index 7360750..b5afb58 100644 --- a/hw/dmx/dmxscrinit.c +++ b/hw/dmx/dmxscrinit.c @@ -68,7 +68,7 @@ static unsigned long dmxGeneration; static unsigned long *dmxCursorGeneration; static int dmxGCPrivateKeyIndex; -DevPrivateKey dmxGCPrivateKey = &dmxGCPrivateKey; /**< Private index for GCs */ +DevPrivateKey dmxGCPrivateKey = &dmxGCPrivateKeyIndex; /**< Private index for GCs */ static int dmxWinPrivateKeyIndex; DevPrivateKey dmxWinPrivateKey = &dmxWinPrivateKeyIndex; /**< Private index for Windows */ static int dmxPixPrivateKeyIndex; |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Git Commit: 84ef8ed6fbefd8d6c0aaa3c862879f9804299bd8 Segmentation Fault in DMX Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb78106c0 (LWP 20891)] 0x081a6391 in dixRequestPrivate (key=0x820f74c, size=16) at privates.c:93 93 if (size > item->size) (gdb) bt #0 0x081a6391 in dixRequestPrivate (key=0x820f74c, size=16) at privates.c:93 #1 0x0807b79b in dmxInitGC (pScreen=0x82406f0) at dmxgc.c:88 #2 0x0808590e in dmxScreenInit (idx=0, pScreen=0x82406f0, argc=7, argv=0xbfc12994) at dmxscrinit.c:231 #3 0x081a60b5 in AddScreen (pfnInit=0x8085877 <dmxScreenInit>, argc=7, argv=0xbfc12994) at main.c:690 #4 0x08080498 in InitOutput (pScreenInfo=0x8226f80, argc=7, argv=0xbfc12994) at dmxinit.c:779 #5 0x081a53ef in main (argc=7, argv=0xbfc12994, envp=0xbfc129b4) at main.c:310 (gdb) list 88 dixRequestPrivate(const DevPrivateKey key, unsigned size) 89 { 90 PrivateDescRec *item = findItem(key); 91 if (!item) 92 return FALSE; 93 if (size > item->size) 94 item->size = size; 95 return TRUE; 96 } 97 (gdb) print item $1 = (PrivateDescRec *) 0x8a315ca0 (gdb) print *item Cannot access memory at address 0x8a315ca0 (gdb) print size $2 = 16 (gdb) print key $3 = (const DevPrivateKey) 0x820f74c (gdb) print *key $4 = 136378188