Hi,

The CVS version of XFree SEGVs on FreeBSD-4.8 and DragonFly-CURRENT on my Asus A7V8X-VM (VIA KM400 using on board video). This happens after switching to a graphics mode but before the cross hatching. Also, I'm using a old monitor that doesn't do DDC.

It seems (even with the patched gdb for loadable modules and building with -g, I couldn't get symbol names in modules) the crash happens on line 8184 in via_bios.c (in VIAFindModeUseBIOSTable()):

pBIOSInfo->UserSetting->DefaultSetting = FALSE;

Thing is, I don't see where UserSetting is ever allocated! The attached patch allocates it in VIAGetRec() in via_driver.c.

Everything works fine otherwise.

James

? alloc-UserSetting.patch
Index: via_driver.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/via/via_driver.c,v
retrieving revision 1.22
diff -u -u -r1.22 via_driver.c
--- via_driver.c        5 Jan 2004 00:34:17 -0000       1.22
+++ via_driver.c        14 Jan 2004 23:41:03 -0000
@@ -446,6 +446,8 @@
     pScrn->driverPrivate = xnfcalloc(sizeof(VIARec), 1);
     ((VIARec *)(pScrn->driverPrivate))->pBIOSInfo =
         xnfcalloc(sizeof(VIABIOSInfoRec), 1);
+    ((VIARec *)(pScrn->driverPrivate))->pBIOSInfo->UserSetting =
+        xnfcalloc(sizeof(VIAUserSettingRec), 1);
     ((VIARec *)(pScrn->driverPrivate))->pBIOSInfo->pModeTable =
         xnfcalloc(sizeof(VIAModeTableRec), 1);
 

Reply via email to