void
fbdevHWSetVideoModes(ScrnInfoPtr pScrn)
{
...
DisplayModePtr mode,this,last = NULL;...
if (NULL == pScrn->modes) {
...
} else {
this = xnfalloc(sizeof(DisplayModeRec));
memcpy(this,mode,sizeof(DisplayModeRec));
this->next = pScrn->modes;
this->prev = last;
last->next = this; /* Oops... this is not good. 'last' is NULL at the first time. */
pScrn->modes->prev = this;
}
last = this;
...
}
I have XFree86-4.2.0 but nothing has changed in this function in 4.3.0.
I think this patch may help.
--- xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c Mon Nov 25 17:05:00
2002
+++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c Thu Apr 3 19:11:49 2003
@@ -462,7 +462,7 @@
int virtY = pScrn->display->virtualY;
struct fb_var_screeninfo var;
char **modename;
- DisplayModePtr mode,this,last = NULL;
+ DisplayModePtr mode,this,last = pScrn->modes;
TRACE_ENTER("VerifyModes");
if (NULL == pScrn->display->modes)
