X Strike Force XFree86 SVN commit: r2033 - in branches/ubuntu-warty/debian: . patches
Author: fabbione
Date: 2004-11-19 04:52:23 -0500 (Fri, 19 Nov 2004)
New Revision: 2033
Modified:
branches/ubuntu-warty/debian/changelog
branches/ubuntu-warty/debian/patches/000_stolen_from_x.org.diff
Log:
Import 4.3.0.dfsg.1-6ubuntu25.1 warty-security release.
Modified: branches/ubuntu-warty/debian/changelog
===================================================================
--- branches/ubuntu-warty/debian/changelog 2004-11-19 09:28:39 UTC (rev 2032)
+++ branches/ubuntu-warty/debian/changelog 2004-11-19 09:52:23 UTC (rev 2033)
@@ -1,3 +1,15 @@
+xfree86 (4.3.0.dfsg.1-6ubuntu25.1) warty-security; urgency=low
+
+ * Security upload: further fixes to the libXpm issues reported in
+ CAN-2004-0687 and CAN-2004-0688, and fixed in 4.3.0.dfsg.1-6ubuntu18.
+ Similar integer overflow vulnerabilities have discovered and fixed. The
+ CAN numbers remain the same, as it is the same vulnerabilities that are
+ being fixed.
+ * debian/patches/000_stolen_from_x.org:
+ Updated with fixes for new vulnerabilities.
+
+ -- Daniel Stone <daniel.stone@canonical.com> Mon, 15 Nov 2004 10:20:11 +0100
+
xfree86 (4.3.0.dfsg.1-6ubuntu25) warty; urgency=low
Imported from Debian trunk:
Modified: branches/ubuntu-warty/debian/patches/000_stolen_from_x.org.diff
===================================================================
--- branches/ubuntu-warty/debian/patches/000_stolen_from_x.org.diff 2004-11-19 09:28:39 UTC (rev 2032)
+++ branches/ubuntu-warty/debian/patches/000_stolen_from_x.org.diff 2004-11-19 09:52:23 UTC (rev 2033)
@@ -8,7 +8,10 @@
not contain a valid mode.
Also merge libXpm security fix from X11R6.8.1, fixing multiple integer
-overflows (CAN-2004-0687) and stack overflows (CAN-2004-0688).
+overflows (CAN-2004-0687) and stack overflows (CAN-2004-0688). This patch has
+since been updated with the libXpm security fix proposed for X11R6.8.2, which
+updates the previous patches to fix more vulnerabilities. The CAN numbers
+remain the same.
diff -urN xc.orig/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c
--- xc.orig/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c 2004-09-15 10:58:47.014750536 +1000
@@ -99,9 +102,218 @@
ErrorF("bomb 6\n");
return (FALSE);
}
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/common/xf86str.h xc/programs/Xserver/hw/xfree86/common/xf86str.h
+--- xc.orig/programs/Xserver/hw/xfree86/common/xf86str.h 2004-09-15 10:05:46.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/common/xf86str.h 2004-09-15 10:14:05.000000000 +0000
+@@ -16,6 +16,7 @@
+ #include "input.h"
+ #include "scrnintstr.h"
+ #include "pixmapstr.h"
++#include "colormapst.h"
+ #include "xf86Module.h"
+ #include "xf86Opt.h"
+ #include "xf86Pci.h"
+@@ -747,7 +748,7 @@
+ typedef Bool xf86EnterVTProc (int, int);
+ typedef void xf86LeaveVTProc (int, int);
+ typedef void xf86FreeScreenProc (int, int);
+-typedef int xf86ValidModeProc (int, DisplayModePtr, Bool, int);
++typedef ModeStatus xf86ValidModeProc (int, DisplayModePtr, Bool, int);
+ typedef void xf86EnableDisableFBAccessProc(int, Bool);
+ typedef int xf86SetDGAModeProc (int, int, DGADevicePtr);
+ typedef int xf86ChangeGammaProc (int, Gamma);
+@@ -755,6 +756,8 @@
+ typedef Bool xf86PMEventProc (int, pmEvent, Bool);
+ typedef int xf86HandleMessageProc (int, const char*, const char*, char**);
+
++typedef void xf86LoadPaletteProc (ScrnInfoPtr, int, int *, LOCO *, VisualPtr);
++
+ /*
+ * ScrnInfoRec
+ *
+@@ -905,6 +908,7 @@
+ xf86PointerMovedProc *PointerMoved;
+ xf86PMEventProc *PMEvent;
+ xf86HandleMessageProc *HandleMessage;
++ xf86LoadPaletteProc *LoadPalette;
+
+ /*
+ * This can be used when the minor ABI version is incremented.
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c
+--- xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c 2004-09-15 10:05:46.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c 2004-09-15 10:09:57.000000000 +0000
+@@ -873,3 +873,18 @@
+
+ return TRUE;
+ }
++
++xf86SwitchModeProc *
++fbdevHWSwitchModeWeak(void) { return fbdevHWSwitchMode; }
++
++xf86AdjustFrameProc *
++fbdevHWAdjustFrameWeak(void) { return fbdevHWAdjustFrame; }
++
++xf86LeaveVTProc *
++fbdevHWLeaveVTWeak(void) { return fbdevHWLeaveVT; }
++
++xf86ValidModeProc *
++fbdevHWValidModeWeak(void) { return fbdevHWValidMode; }
++
++xf86LoadPaletteProc *
++fbdevHWLoadPaletteWeak(void) { return fbdevHWLoadPalette; }
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h
+--- xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h 2001-10-01 13:44:12.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h 2004-09-15 10:09:57.000000000 +0000
+@@ -49,4 +49,10 @@
+
+ Bool fbdevHWSaveScreen(ScreenPtr pScreen, int mode);
+
++xf86SwitchModeProc *fbdevHWSwitchModeWeak(void);
++xf86AdjustFrameProc *fbdevHWAdjustFrameWeak(void);
++xf86LeaveVTProc *fbdevHWLeaveVTWeak(void);
++xf86ValidModeProc *fbdevHWValidModeWeak(void);
++xf86LoadPaletteProc *fbdevHWLoadPaletteWeak(void);
++
+ #endif
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c
+--- xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c 2001-10-28 03:33:55.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c 2004-09-15 10:09:57.000000000 +0000
+@@ -168,3 +168,18 @@
+ {
+ return FALSE;
+ }
++
++xf86SwitchModeProc *
++fbdevHWSwitchModeWeak(void) { return fbdevHWSwitchMode; }
++
++xf86AdjustFrameProc *
++fbdevHWAdjustFrameWeak(void) { return fbdevHWAdjustFrame; }
++
++xf86LeaveVTProc *
++fbdevHWLeaveVTWeak(void) { return fbdevHWLeaveVT; }
++
++xf86ValidModeProc *
++fbdevHWValidModeWeak(void) { return fbdevHWValidMode; }
++
++xf86LoadPaletteProc *
++fbdevHWLoadPaletteWeak(void) { return fbdevHWLoadPalette; }
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/xaa/xaaFallback.c xc/programs/Xserver/hw/xfree86/xaa/xaaFallback.c
+--- xc.orig/programs/Xserver/hw/xfree86/xaa/xaaFallback.c 1999-05-30 03:03:31.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/xaa/xaaFallback.c 2004-09-15 10:09:57.000000000 +0000
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaFallback.c,v 1.5 1999/05/30 03:03:31 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaFallback.c,v 1.4 1999/03/14 11:18:09 dawes Exp $ */
+
+ #include "misc.h"
+ #include "xf86.h"
+@@ -347,6 +347,7 @@
+ {NULL} /* devPrivate */
+ };
+
+-
+-
+-
++GCOps *XAAGetFallbackOps(void)
++{
++ return &XAAFallbackOps;
++}
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/xaa/xaaROP.c xc/programs/Xserver/hw/xfree86/xaa/xaaROP.c
+--- xc.orig/programs/Xserver/hw/xfree86/xaa/xaaROP.c 2000-09-28 20:48:01.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/xaa/xaaROP.c 2004-09-15 10:09:57.000000000 +0000
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaROP.c,v 1.2 2000/09/28 20:48:01 mvojkovi Exp $ */
++/* $XFree86$ */
+
+ #include "X.h"
+ #include "misc.h"
+@@ -94,6 +94,25 @@
+ ROP_DPo
+ };
+
++int XAAGetCopyROP(int i)
++{
++ return XAACopyROP[i];
++}
++
++int XAAGetCopyROP_PM(int i)
++{
++ return XAACopyROP_PM[i];
++}
++
++int XAAGetPatternROP(int i)
++{
++ return XAAPatternROP[i];
++}
++
++int XAAGetPatternROP_PM(int i)
++{
++ return XAAPatternROP_PM[i];
++}
+
+ int
+ XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop)
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/xaa/xaalocal.h xc/programs/Xserver/hw/xfree86/xaa/xaalocal.h
+--- xc.orig/programs/Xserver/hw/xfree86/xaa/xaalocal.h 2003-02-17 16:08:29.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/xaa/xaalocal.h 2004-09-15 10:09:57.000000000 +0000
+@@ -1626,6 +1626,7 @@
+
+
+ extern GCOps XAAFallbackOps;
++extern GCOps *XAAGetFallbackOps(void);
+ extern GCFuncs XAAGCFuncs;
+ extern int XAAScreenIndex;
+ extern int XAAGCIndex;
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/xaa/xaarop.h xc/programs/Xserver/hw/xfree86/xaa/xaarop.h
+--- xc.orig/programs/Xserver/hw/xfree86/xaa/xaarop.h 1999-03-21 07:35:31.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/xaa/xaarop.h 2004-09-15 10:09:57.000000000 +0000
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaarop.h,v 1.1 1999/03/21 07:35:31 dawes Exp $ */
++/* $XFree86$ */
+
+ /*
+
+@@ -299,9 +299,15 @@
+ int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop);
+ int XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop);
+
++/* XXX These four should be static, but it breaks the 6.7.0 ABI. */
+ extern int XAACopyROP[16];
+ extern int XAACopyROP_PM[16];
+ extern int XAAPatternROP[16];
+ extern int XAAPatternROP_PM[16];
+
++extern int XAAGetCopyROP(int i);
++extern int XAAGetCopyROP_PM(int i);
++extern int XAAGetPatternROP(int i);
++extern int XAAGetPatternROP_PM(int i);
++
+ #endif /* _XAAROP_H */
+diff -Naurd xc.orig/programs/Xserver/hw/xfree86/input/keyboard/kbd.c xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c
+--- xc.orig/programs/Xserver/hw/xfree86/input/keyboard/kbd.c 2003-02-17 16:08:29.000000000 +0000
++++ xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c 2004-09-27 07:46:15.000000000 +0000
+@@ -573,6 +573,19 @@
+ return;
+ }
+
++#ifndef __sparc64__
++ /*
++ * PC keyboards generate separate key codes for
++ * Alt+Print and Control+Pause but in the X keyboard model
++ * they need to get the same key code as the base key on the same
++ * physical keyboard key.
++ */
++ if (scanCode == KEY_SysReqest)
++ scanCode = KEY_Print;
++ else if (scanCode == KEY_Break)
++ scanCode = KEY_Pause;
++#endif
++
+ /*
+ * Now map the scancodes to real X-keycodes ...
+ */
diff -urN xc.orig/extras/Xpm/lib/Attrib.c xc/extras/Xpm/lib/Attrib.c
---- xc.orig/extras/Xpm/lib/Attrib.c 1999-01-12 00:23:09.000000000 +1100
-+++ xc/extras/Xpm/lib/Attrib.c 2004-09-15 11:00:13.481605576 +1000
+--- xc.orig/extras/Xpm/lib/Attrib.c 2004-11-15 10:46:11.439158200 +0100
++++ xc/extras/Xpm/lib/Attrib.c 2004-11-15 11:07:53.054282624 +0100
@@ -35,7 +35,7 @@
#include "XpmI.h"
@@ -129,8 +341,8 @@
if (!colorTable) {
*oldct = NULL;
diff -urN xc.orig/extras/Xpm/lib/CrDatFrI.c xc/extras/Xpm/lib/CrDatFrI.c
---- xc.orig/extras/Xpm/lib/CrDatFrI.c 2001-10-28 14:32:09.000000000 +1100
-+++ xc/extras/Xpm/lib/CrDatFrI.c 2004-09-15 11:00:13.482605424 +1000
+--- xc.orig/extras/Xpm/lib/CrDatFrI.c 2004-11-15 10:46:11.442157744 +0100
++++ xc/extras/Xpm/lib/CrDatFrI.c 2004-11-15 11:07:53.054282624 +0100
@@ -124,6 +124,8 @@
*/
header_nlines = 1 + image->ncolors;
@@ -141,8 +353,8 @@
if (!header)
return (XpmNoMemory);
diff -urN xc.orig/extras/Xpm/lib/WrFFrI.c xc/extras/Xpm/lib/WrFFrI.c
---- xc.orig/extras/Xpm/lib/WrFFrI.c 2001-10-28 14:32:09.000000000 +1100
-+++ xc/extras/Xpm/lib/WrFFrI.c 2004-09-15 11:00:13.499602840 +1000
+--- xc.orig/extras/Xpm/lib/WrFFrI.c 2004-11-15 10:46:11.449156680 +0100
++++ xc/extras/Xpm/lib/WrFFrI.c 2004-11-15 11:07:53.055282472 +0100
@@ -248,6 +248,8 @@
unsigned int x, y, h;
@@ -153,8 +365,8 @@
if (!buf)
return (XpmNoMemory);
diff -urN xc.orig/extras/Xpm/lib/XpmI.h xc/extras/Xpm/lib/XpmI.h
---- xc.orig/extras/Xpm/lib/XpmI.h 2002-01-08 06:40:23.000000000 +1100
-+++ xc/extras/Xpm/lib/XpmI.h 2004-09-15 11:00:13.506601776 +1000
+--- xc.orig/extras/Xpm/lib/XpmI.h 2004-11-15 10:46:11.452156224 +0100
++++ xc/extras/Xpm/lib/XpmI.h 2004-11-15 11:07:53.055282472 +0100
@@ -85,6 +85,18 @@
boundCheckingCalloc((long)(nelem),(long) (elsize))
#endif
@@ -188,8 +400,8 @@
} xpmHashTable;
diff -urN xc.orig/extras/Xpm/lib/create.c xc/extras/Xpm/lib/create.c
---- xc.orig/extras/Xpm/lib/create.c 2002-01-08 06:40:49.000000000 +1100
-+++ xc/extras/Xpm/lib/create.c 2004-09-15 11:00:13.522599344 +1000
+--- xc.orig/extras/Xpm/lib/create.c 2004-11-15 10:46:11.459155160 +0100
++++ xc/extras/Xpm/lib/create.c 2004-11-15 11:07:53.057282168 +0100
@@ -1,3 +1,4 @@
+/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
/*
@@ -245,8 +457,8 @@
if (USE_HASHTABLE) {
xpmHashAtom *slot;
diff -urN xc.orig/extras/Xpm/lib/data.c xc/extras/Xpm/lib/data.c
---- xc.orig/extras/Xpm/lib/data.c 2002-01-08 06:40:49.000000000 +1100
-+++ xc/extras/Xpm/lib/data.c 2004-09-15 11:00:13.532597824 +1000
+--- xc.orig/extras/Xpm/lib/data.c 2004-11-15 10:46:11.460155008 +0100
++++ xc/extras/Xpm/lib/data.c 2004-11-15 11:07:53.058282016 +0100
@@ -375,7 +375,7 @@
{
if (!data->type)
@@ -257,8 +469,8 @@
strncpy(*cmt, data->Comment, data->CommentLength);
(*cmt)[data->CommentLength] = '\0';
diff -urN xc.orig/extras/Xpm/lib/hashtab.c xc/extras/Xpm/lib/hashtab.c
---- xc.orig/extras/Xpm/lib/hashtab.c 1999-01-12 00:23:11.000000000 +1100
-+++ xc/extras/Xpm/lib/hashtab.c 2004-09-15 11:00:13.533597672 +1000
+--- xc.orig/extras/Xpm/lib/hashtab.c 2004-11-15 10:46:11.461154856 +0100
++++ xc/extras/Xpm/lib/hashtab.c 2004-11-15 11:07:53.058282016 +0100
@@ -135,7 +135,7 @@
xpmHashTable *table;
{
@@ -287,8 +499,8 @@
if (!atomTable)
return (XpmNoMemory);
diff -urN xc.orig/extras/Xpm/lib/parse.c xc/extras/Xpm/lib/parse.c
---- xc.orig/extras/Xpm/lib/parse.c 2001-10-28 14:32:10.000000000 +1100
-+++ xc/extras/Xpm/lib/parse.c 2004-09-15 11:00:13.541596456 +1000
+--- xc.orig/extras/Xpm/lib/parse.c 2004-11-15 10:46:11.464154400 +0100
++++ xc/extras/Xpm/lib/parse.c 2004-11-15 11:07:53.059281864 +0100
@@ -1,3 +1,4 @@
+/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
/*
@@ -470,8 +682,8 @@
if (USE_HASHTABLE) {
xpmHashAtom *slot;
diff -urN xc.orig/extras/Xpm/lib/scan.c xc/extras/Xpm/lib/scan.c
---- xc.orig/extras/Xpm/lib/scan.c 2002-01-08 06:40:49.000000000 +1100
-+++ xc/extras/Xpm/lib/scan.c 2004-09-15 11:00:13.563593112 +1000
+--- xc.orig/extras/Xpm/lib/scan.c 2004-11-15 10:46:11.469153640 +0100
++++ xc/extras/Xpm/lib/scan.c 2004-11-15 11:07:53.060281712 +0100
@@ -107,7 +107,8 @@
LFUNC(ScanTransparentColor, int, (XpmColor *color, unsigned int cpp,
XpmAttributes *attributes));
@@ -538,8 +750,8 @@
if (!xcolors)
return (XpmNoMemory);
diff -urN xc.orig/lib/Xpm/Imakefile xc/lib/Xpm/Imakefile
---- xc.orig/lib/Xpm/Imakefile 2000-09-19 23:46:06.000000000 +1100
-+++ xc/lib/Xpm/Imakefile 2004-09-15 11:00:13.579590680 +1000
+--- xc.orig/lib/Xpm/Imakefile 2004-11-15 10:46:27.445724832 +0100
++++ xc/lib/Xpm/Imakefile 2004-11-15 11:07:53.060281712 +0100
@@ -42,11 +42,16 @@
SPRINTFDEF = -DVOID_SPRINTF
#endif
@@ -558,212 +770,3 @@
HEADERS = xpm.h
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/common/xf86str.h xc/programs/Xserver/hw/xfree86/common/xf86str.h
---- xc.orig/programs/Xserver/hw/xfree86/common/xf86str.h 2004-09-15 10:05:46.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/common/xf86str.h 2004-09-15 10:14:05.000000000 +0000
-@@ -16,6 +16,7 @@
- #include "input.h"
- #include "scrnintstr.h"
- #include "pixmapstr.h"
-+#include "colormapst.h"
- #include "xf86Module.h"
- #include "xf86Opt.h"
- #include "xf86Pci.h"
-@@ -747,7 +748,7 @@
- typedef Bool xf86EnterVTProc (int, int);
- typedef void xf86LeaveVTProc (int, int);
- typedef void xf86FreeScreenProc (int, int);
--typedef int xf86ValidModeProc (int, DisplayModePtr, Bool, int);
-+typedef ModeStatus xf86ValidModeProc (int, DisplayModePtr, Bool, int);
- typedef void xf86EnableDisableFBAccessProc(int, Bool);
- typedef int xf86SetDGAModeProc (int, int, DGADevicePtr);
- typedef int xf86ChangeGammaProc (int, Gamma);
-@@ -755,6 +756,8 @@
- typedef Bool xf86PMEventProc (int, pmEvent, Bool);
- typedef int xf86HandleMessageProc (int, const char*, const char*, char**);
-
-+typedef void xf86LoadPaletteProc (ScrnInfoPtr, int, int *, LOCO *, VisualPtr);
-+
- /*
- * ScrnInfoRec
- *
-@@ -905,6 +908,7 @@
- xf86PointerMovedProc *PointerMoved;
- xf86PMEventProc *PMEvent;
- xf86HandleMessageProc *HandleMessage;
-+ xf86LoadPaletteProc *LoadPalette;
-
- /*
- * This can be used when the minor ABI version is incremented.
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c
---- xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c 2004-09-15 10:05:46.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.c 2004-09-15 10:09:57.000000000 +0000
-@@ -873,3 +873,18 @@
-
- return TRUE;
- }
-+
-+xf86SwitchModeProc *
-+fbdevHWSwitchModeWeak(void) { return fbdevHWSwitchMode; }
-+
-+xf86AdjustFrameProc *
-+fbdevHWAdjustFrameWeak(void) { return fbdevHWAdjustFrame; }
-+
-+xf86LeaveVTProc *
-+fbdevHWLeaveVTWeak(void) { return fbdevHWLeaveVT; }
-+
-+xf86ValidModeProc *
-+fbdevHWValidModeWeak(void) { return fbdevHWValidMode; }
-+
-+xf86LoadPaletteProc *
-+fbdevHWLoadPaletteWeak(void) { return fbdevHWLoadPalette; }
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h
---- xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h 2001-10-01 13:44:12.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhw.h 2004-09-15 10:09:57.000000000 +0000
-@@ -49,4 +49,10 @@
-
- Bool fbdevHWSaveScreen(ScreenPtr pScreen, int mode);
-
-+xf86SwitchModeProc *fbdevHWSwitchModeWeak(void);
-+xf86AdjustFrameProc *fbdevHWAdjustFrameWeak(void);
-+xf86LeaveVTProc *fbdevHWLeaveVTWeak(void);
-+xf86ValidModeProc *fbdevHWValidModeWeak(void);
-+xf86LoadPaletteProc *fbdevHWLoadPaletteWeak(void);
-+
- #endif
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c
---- xc.orig/programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c 2001-10-28 03:33:55.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/fbdevhw/fbdevhwstub.c 2004-09-15 10:09:57.000000000 +0000
-@@ -168,3 +168,18 @@
- {
- return FALSE;
- }
-+
-+xf86SwitchModeProc *
-+fbdevHWSwitchModeWeak(void) { return fbdevHWSwitchMode; }
-+
-+xf86AdjustFrameProc *
-+fbdevHWAdjustFrameWeak(void) { return fbdevHWAdjustFrame; }
-+
-+xf86LeaveVTProc *
-+fbdevHWLeaveVTWeak(void) { return fbdevHWLeaveVT; }
-+
-+xf86ValidModeProc *
-+fbdevHWValidModeWeak(void) { return fbdevHWValidMode; }
-+
-+xf86LoadPaletteProc *
-+fbdevHWLoadPaletteWeak(void) { return fbdevHWLoadPalette; }
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/xaa/xaaFallback.c xc/programs/Xserver/hw/xfree86/xaa/xaaFallback.c
---- xc.orig/programs/Xserver/hw/xfree86/xaa/xaaFallback.c 1999-05-30 03:03:31.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/xaa/xaaFallback.c 2004-09-15 10:09:57.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaFallback.c,v 1.5 1999/05/30 03:03:31 dawes Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaFallback.c,v 1.4 1999/03/14 11:18:09 dawes Exp $ */
-
- #include "misc.h"
- #include "xf86.h"
-@@ -347,6 +347,7 @@
- {NULL} /* devPrivate */
- };
-
--
--
--
-+GCOps *XAAGetFallbackOps(void)
-+{
-+ return &XAAFallbackOps;
-+}
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/xaa/xaaROP.c xc/programs/Xserver/hw/xfree86/xaa/xaaROP.c
---- xc.orig/programs/Xserver/hw/xfree86/xaa/xaaROP.c 2000-09-28 20:48:01.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/xaa/xaaROP.c 2004-09-15 10:09:57.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaROP.c,v 1.2 2000/09/28 20:48:01 mvojkovi Exp $ */
-+/* $XFree86$ */
-
- #include "X.h"
- #include "misc.h"
-@@ -94,6 +94,25 @@
- ROP_DPo
- };
-
-+int XAAGetCopyROP(int i)
-+{
-+ return XAACopyROP[i];
-+}
-+
-+int XAAGetCopyROP_PM(int i)
-+{
-+ return XAACopyROP_PM[i];
-+}
-+
-+int XAAGetPatternROP(int i)
-+{
-+ return XAAPatternROP[i];
-+}
-+
-+int XAAGetPatternROP_PM(int i)
-+{
-+ return XAAPatternROP_PM[i];
-+}
-
- int
- XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop)
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/xaa/xaalocal.h xc/programs/Xserver/hw/xfree86/xaa/xaalocal.h
---- xc.orig/programs/Xserver/hw/xfree86/xaa/xaalocal.h 2003-02-17 16:08:29.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/xaa/xaalocal.h 2004-09-15 10:09:57.000000000 +0000
-@@ -1626,6 +1626,7 @@
-
-
- extern GCOps XAAFallbackOps;
-+extern GCOps *XAAGetFallbackOps(void);
- extern GCFuncs XAAGCFuncs;
- extern int XAAScreenIndex;
- extern int XAAGCIndex;
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/xaa/xaarop.h xc/programs/Xserver/hw/xfree86/xaa/xaarop.h
---- xc.orig/programs/Xserver/hw/xfree86/xaa/xaarop.h 1999-03-21 07:35:31.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/xaa/xaarop.h 2004-09-15 10:09:57.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaarop.h,v 1.1 1999/03/21 07:35:31 dawes Exp $ */
-+/* $XFree86$ */
-
- /*
-
-@@ -299,9 +299,15 @@
- int XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop);
- int XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop);
-
-+/* XXX These four should be static, but it breaks the 6.7.0 ABI. */
- extern int XAACopyROP[16];
- extern int XAACopyROP_PM[16];
- extern int XAAPatternROP[16];
- extern int XAAPatternROP_PM[16];
-
-+extern int XAAGetCopyROP(int i);
-+extern int XAAGetCopyROP_PM(int i);
-+extern int XAAGetPatternROP(int i);
-+extern int XAAGetPatternROP_PM(int i);
-+
- #endif /* _XAAROP_H */
-diff -Naurd xc.orig/programs/Xserver/hw/xfree86/input/keyboard/kbd.c xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c
---- xc.orig/programs/Xserver/hw/xfree86/input/keyboard/kbd.c 2003-02-17 16:08:29.000000000 +0000
-+++ xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c 2004-09-27 07:46:15.000000000 +0000
-@@ -573,6 +573,19 @@
- return;
- }
-
-+#ifndef __sparc64__
-+ /*
-+ * PC keyboards generate separate key codes for
-+ * Alt+Print and Control+Pause but in the X keyboard model
-+ * they need to get the same key code as the base key on the same
-+ * physical keyboard key.
-+ */
-+ if (scanCode == KEY_SysReqest)
-+ scanCode = KEY_Print;
-+ else if (scanCode == KEY_Break)
-+ scanCode = KEY_Pause;
-+#endif
-+
- /*
- * Now map the scancodes to real X-keycodes ...
- */
Reply to: