summaryrefslogtreecommitdiff
path: root/x11/XFree86
diff options
context:
space:
mode:
authorJean-Marc Zucconi <jmz@FreeBSD.org>2001-04-05 16:21:35 +0000
committerJean-Marc Zucconi <jmz@FreeBSD.org>2001-04-05 16:21:35 +0000
commit6a9303a83aa0225d85fac243b5ce198eafadb3ec (patch)
treef59bf7772c23de7b4e0ac0b3437f55dfdf80f09d /x11/XFree86
parentRollback dlmalloc. I overlooked that it already exists under another name. (diff)
Bring in the most recent bits from the XFree86 cvs repository (security
fixes mainly). This corresponds more or less to a pre-3.3.7 version.
Notes
Notes: svn path=/head/; revision=40897
Diffstat (limited to 'x11/XFree86')
-rw-r--r--x11/XFree86/Makefile12
-rw-r--r--x11/XFree86/distinfo8
-rw-r--r--x11/XFree86/files/patch-0112
-rw-r--r--x11/XFree86/files/patch-813
-rw-r--r--x11/XFree86/files/patch-912
-rw-r--r--x11/XFree86/files/patch-aa11
-rw-r--r--x11/XFree86/files/patch-d10
-rw-r--r--x11/XFree86/files/patch-h558
-rw-r--r--x11/XFree86/pkg-plist18
-rw-r--r--x11/XFree86/pkg-plist.alpha2
-rw-r--r--x11/XFree86/pkg-plist.pc982
11 files changed, 18 insertions, 640 deletions
diff --git a/x11/XFree86/Makefile b/x11/XFree86/Makefile
index e1bb146bb003..ca8c38eb0d91 100644
--- a/x11/XFree86/Makefile
+++ b/x11/XFree86/Makefile
@@ -7,7 +7,7 @@
PORTNAME= XFree86
PORTVERSION= 3.3.6
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= x11
MASTER_SITES= ${MASTER_SITE_XFREE}
MASTER_SITE_SUBDIR= ${PORTVERSION}
@@ -16,13 +16,8 @@ DISTFILES= X336src-1.tgz X336src-2.tgz
DISTFILES+= X336src-3.tgz
.endif
-PATCH_SITES= ftp://ftp.xfree.org/pub/XFree86/3.3.6/fixes/ \
- ftp://ftp.freesoftware.com/pub/XFree86/3.3.6/fixes/ \
- ftp://ftp.lip6.fr/pub/X11/XFree86/XFree86-3.3.6/fixes/ \
- ftp://ftp.cs.tu-berlin.de/pub/X/XFree86/3.3.6/fixes/ \
- ftp://sunsite.doc.ic.ac.uk/packages/XFree86/3.3.6/fixes/
-PATCHFILES= fix-01-r128 fix-04-s3trio3d2x fix-05-s3trio3d fix-06-s3trio3d2x\
- fix-07-s3trio64v2gx+netfinity fix-08-s3savage_ix+mx
+PATCH_SITES= ${MASTER_SITE_LOCAL:S,%SUBDIR%,jmz,g}
+PATCHFILES= 3.3.6-3.3.6a.diffs.gz
MAINTAINER= jmz@FreeBSD.org
@@ -35,7 +30,6 @@ INSTALL_TARGET= install install.man
INSTALL_TARGET+= install.linkkit
.endif
DIST_SUBDIR= xc
-PATCH_DIST_ARGS=-p2 -E -d ${WRKDIR}/xc/programs --quiet
SCRIPTS_ENV= OSVERSION=${OSVERSION} MACHINE=${MACHINE} \
MACHINE_ARCH=${MACHINE_ARCH}
# can't use USE_X_PREFIX here -- it will cause a circular dependency
diff --git a/x11/XFree86/distinfo b/x11/XFree86/distinfo
index 76df313a8264..2662e20dc4fe 100644
--- a/x11/XFree86/distinfo
+++ b/x11/XFree86/distinfo
@@ -1,10 +1,4 @@
MD5 (xc/X336src-1.tgz) = bbfa360d10ce91ab37f24f197a31b485
MD5 (xc/X336src-2.tgz) = 897daa223b5b67b8314ed8835cc17539
-MD5 (xc/X336src-3.tgz) = 4b1d9d353f8b4cba678f7c156b872330
-MD5 (xc/fix-01-r128) = a62387e13b970c5a83e9a0822c30344f
-MD5 (xc/fix-04-s3trio3d2x) = 75569a9d49bb45b8ecb311ab3f8c2469
-MD5 (xc/fix-05-s3trio3d) = eb8fd33328c8b5fbd0410472339dee44
-MD5 (xc/fix-06-s3trio3d2x) = 79c4e3f340f1df5786649559d09c2378
-MD5 (xc/fix-07-s3trio64v2gx+netfinity) = 6b09cc9b7b3d89f18ea5e9591969b99c
-MD5 (xc/fix-08-s3savage_ix+mx) = 8df8d4b013de9e5f87d028b1bf2415a5
+MD5 (xc/3.3.6-3.3.6a.diffs.gz) = 6268d7e4b4ed5c189dbcb8af2c560615
MD5 (xc/Wraphelp.c) = IGNORE
diff --git a/x11/XFree86/files/patch-01 b/x11/XFree86/files/patch-01
deleted file mode 100644
index 677d184b5c89..000000000000
--- a/x11/XFree86/files/patch-01
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur /usr/ports/x11/XFree86/work/xc/config/cf/xfree86.cf config/cf/xfree86.cf
---- /usr/ports/x11/XFree86/work/xc/config/cf/xfree86.cf Sun Nov 8 11:19:11 1998
-+++ config/cf/xfree86.cf Tue Dec 8 10:05:55 1998
-@@ -853,7 +853,7 @@
- #endif
-
- #ifndef XFree86ConsoleDefines
--#ifdef i386BsdArchitecture
-+#if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture)
- #define XFree86ConsoleDefines -DPCCONS_SUPPORT -DSYSCONS_SUPPORT -DPCVT_SUPPORT
- #else
- #define XFree86ConsoleDefines /**/
diff --git a/x11/XFree86/files/patch-8 b/x11/XFree86/files/patch-8
deleted file mode 100644
index 58f16f2ed4de..000000000000
--- a/x11/XFree86/files/patch-8
+++ /dev/null
@@ -1,13 +0,0 @@
---- nls/Imakefile.orig Sun Jan 23 02:22:04 2000
-+++ nls/Imakefile Sun Jan 23 02:38:08 2000
-@@ -8,7 +8,9 @@
- #define PassCDebugFlags
-
- SUBDIRS = XLC_LOCALE Compose
--
-+#if defined(FreeBSDArchitecture)
-+STD_CPP_DEFINES+= -DINCLUDE_ru_SU
-+#endif
- MakeSubdirs($(SUBDIRS))
- DependSubdirs($(SUBDIRS))
-
diff --git a/x11/XFree86/files/patch-9 b/x11/XFree86/files/patch-9
deleted file mode 100644
index 985d7dddac3d..000000000000
--- a/x11/XFree86/files/patch-9
+++ /dev/null
@@ -1,12 +0,0 @@
---- programs/xdm/sessreg.c~ Sun Jan 16 18:33:06 2000
-+++ programs/xdm/sessreg.c Sun Jan 23 03:31:15 2000
-@@ -79,7 +79,9 @@
-
- #ifdef CSRG_BASED
- /* *BSD doesn't like a ':0' type entry in utmp */
-+#ifndef __FreeBSD__
- #define NO_UTMP
-+#endif
- #endif
-
- #ifndef WTMP_FILE
diff --git a/x11/XFree86/files/patch-aa b/x11/XFree86/files/patch-aa
deleted file mode 100644
index def1d4dd3fb6..000000000000
--- a/x11/XFree86/files/patch-aa
+++ /dev/null
@@ -1,11 +0,0 @@
---- programs/Xserver/Imakefile.ORIG Sun Nov 14 18:16:17 1999
-+++ programs/Xserver/Imakefile Sun Nov 14 18:17:24 1999
-@@ -161,7 +161,7 @@
- SYSLIBS = $(ZLIB) MathLibrary Krb5Libraries DBMLibrary $(EXTRASYSLIBS)
- #endif
- #if HasPam
-- PAMLIBS = -lpam -lpam_misc -ldl
-+ PAMLIBS = -lpam
- #endif
- CBRT = mi/LibraryTargetName(cbrt)
- STDDIRS = include dix os mi $(XPDDXDIR) $(EXTDIRS)
diff --git a/x11/XFree86/files/patch-d b/x11/XFree86/files/patch-d
deleted file mode 100644
index 70cb0a30c77f..000000000000
--- a/x11/XFree86/files/patch-d
+++ /dev/null
@@ -1,10 +0,0 @@
---- programs/Xserver/hw/xfree86/xf86Version.h.orig Sat Jan 8 19:24:57 2000
-+++ programs/Xserver/hw/xfree86/xf86Version.h Wed Feb 9 16:44:53 2000
-@@ -19,6 +19,6 @@
- XF86_VERSION_BETA, \
- XF86_VERSION_ALPHA)
-
--#define XF86_DATE "January 8 1999"
-+#define XF86_DATE "January 8 2000"
-
- /* $XConsortium: xf86Version.h /main/78 1996/10/28 05:42:10 kaleb $ */
diff --git a/x11/XFree86/files/patch-h b/x11/XFree86/files/patch-h
deleted file mode 100644
index 3ff2fafc0adf..000000000000
--- a/x11/XFree86/files/patch-h
+++ /dev/null
@@ -1,558 +0,0 @@
-diff -u lib/ICE/ICElibint.h:1.1 X11/xc/lib/ICE/ICElibint.h:1.2
---- lib/ICE/ICElibint.h:1.1 Fri Sep 5 02:58:32 1997
-+++ lib/ICE/ICElibint.h Mon Jul 10 15:17:09 2000
-@@ -288,20 +288,21 @@
- }
-
-
--#define SKIP_STRING(_pBuf, _swap) \
-+#define SKIP_STRING(_pBuf, _swap, _end, _bail) \
- { \
- CARD16 _len; \
- EXTRACT_CARD16 (_pBuf, _swap, _len); \
-- _pBuf += _len; \
-- if (PAD32 (2 + _len)) \
-- _pBuf += PAD32 (2 + _len); \
--}
-+ _pBuf += _len + PAD32(2+_len); \
-+ if (_pBuf > _end) { \
-+ _bail; \
-+ } \
-+}
-
--#define SKIP_LISTOF_STRING(_pBuf, _swap, _count) \
-+#define SKIP_LISTOF_STRING(_pBuf, _swap, _count, _end, _bail) \
- { \
- int _i; \
- for (_i = 0; _i < _count; _i++) \
-- SKIP_STRING (_pBuf, _swap); \
-+ SKIP_STRING (_pBuf, _swap, _end, _bail); \
- }
-
-
-Index: lib/ICE/process.c
-diff -u lib/ICE/process.c:1.1 X11/xc/lib/ICE/process.c:1.2
---- lib/ICE/process.c:1.1 Fri Sep 5 02:58:32 1997
-+++ lib/ICE/process.c Mon Jul 10 15:17:10 2000
-@@ -63,7 +63,11 @@
- return (0); \
- }
-
--
-+#define BAIL_STRING(_iceConn, _opcode, _pStart) {\
-+ _IceErrorBadLength (_iceConn, 0, _opcode, IceFatalToConnection);\
-+ IceDisposeCompleteMessage (_iceConn, _pStart);\
-+ return (0);\
-+}
-
- /*
- * IceProcessMessages:
-@@ -819,7 +823,7 @@
- int myAuthCount, hisAuthCount;
- int found, i, j;
- char *myAuthName, **hisAuthNames;
-- char *pData, *pStart;
-+ char *pData, *pStart, *pEnd;
- char *vendor = NULL;
- char *release = NULL;
- int myAuthIndex = 0;
-@@ -843,10 +847,18 @@
- }
-
- pData = pStart;
--
-- SKIP_STRING (pData, swap); /* vendor */
-- SKIP_STRING (pData, swap); /* release */
-- SKIP_LISTOF_STRING (pData, swap, (int) message->authCount);/* auth names */
-+ pEnd = pStart + (length << 3);
-+
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING(iceConn, ICE_ConnectionSetup,
-+ pStart)); /* vendor */
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING(iceConn, ICE_ConnectionSetup,
-+ pStart)); /* release */
-+ SKIP_LISTOF_STRING (pData, swap, (int) message->authCount, pEnd,
-+ BAIL_STRING(iceConn, ICE_ConnectionSetup,
-+ pStart)); /* auth names */
-+
- pData += (message->versionCount * 4); /* versions */
-
- CHECK_COMPLETE_SIZE (iceConn, ICE_ConnectionSetup,
-@@ -1685,7 +1697,7 @@
-
- {
- iceConnectionReplyMsg *message;
-- char *pData, *pStart;
-+ char *pData, *pStart, *pEnd;
- Bool replyReady;
-
- CHECK_AT_LEAST_SIZE (iceConn, ICE_ConnectionReply,
-@@ -1701,9 +1713,14 @@
- }
-
- pData = pStart;
-+ pEnd = pStart + (length << 3);
-
-- SKIP_STRING (pData, swap); /* vendor */
-- SKIP_STRING (pData, swap); /* release */
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING (iceConn, ICE_ConnectionReply,
-+ pStart)); /* vendor */
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING (iceConn, ICE_ConnectionReply,
-+ pStart)); /* release */
-
- CHECK_COMPLETE_SIZE (iceConn, ICE_ConnectionReply,
- length, pData - pStart + SIZEOF (iceConnectionReplyMsg),
-@@ -1789,7 +1806,7 @@
- int found, i, j;
- char *myAuthName, **hisAuthNames;
- char *protocolName;
-- char *pData, *pStart;
-+ char *pData, *pStart, *pEnd;
- char *vendor = NULL;
- char *release = NULL;
- int accept_setup_now = 0;
-@@ -1824,11 +1841,20 @@
- }
-
- pData = pStart;
-+ pEnd = pStart + (length << 3);
-
-- SKIP_STRING (pData, swap); /* proto name */
-- SKIP_STRING (pData, swap); /* vendor */
-- SKIP_STRING (pData, swap); /* release */
-- SKIP_LISTOF_STRING (pData, swap, (int) message->authCount);/* auth names */
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING(iceConn, ICE_ProtocolSetup,
-+ pStart)); /* proto name */
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING(iceConn, ICE_ProtocolSetup,
-+ pStart)); /* vendor */
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING(iceConn, ICE_ProtocolSetup,
-+ pStart)); /* release */
-+ SKIP_LISTOF_STRING (pData, swap, (int) message->authCount, pEnd,
-+ BAIL_STRING(iceConn, ICE_ProtocolSetup,
-+ pStart)); /* auth names */
- pData += (message->versionCount * 4); /* versions */
-
- CHECK_COMPLETE_SIZE (iceConn, ICE_ProtocolSetup,
-@@ -2170,7 +2196,7 @@
-
- {
- iceProtocolReplyMsg *message;
-- char *pData, *pStart;
-+ char *pData, *pStart, *pEnd;
- Bool replyReady;
-
- CHECK_AT_LEAST_SIZE (iceConn, ICE_ProtocolReply,
-@@ -2186,9 +2212,14 @@
- }
-
- pData = pStart;
-+ pEnd = pStart + (length << 3);
-
-- SKIP_STRING (pData, swap); /* vendor */
-- SKIP_STRING (pData, swap); /* release */
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING(iceConn, ICE_ProtocolReply,
-+ pStart)); /* vendor */
-+ SKIP_STRING (pData, swap, pEnd,
-+ BAIL_STRING(iceConn, ICE_ProtocolReply,
-+ pStart)); /* release */
-
- CHECK_COMPLETE_SIZE (iceConn, ICE_ProtocolReply,
- length, pData - pStart + SIZEOF (iceProtocolReplyMsg),
-Index: lib/X11/GetProp.c
-diff -u lib/X11/GetProp.c:1.1 X11/xc/lib/X11/GetProp.c:1.2
---- lib/X11/GetProp.c:1.1 Fri Sep 5 02:58:44 1997
-+++ lib/X11/GetProp.c Mon Jul 10 15:20:35 2000
-@@ -76,21 +76,24 @@
- */
- case 8:
- nbytes = netbytes = reply.nItems;
-- if (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1))
-+ if (nbytes + 1 > 0 &&
-+ (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
- _XReadPad (dpy, (char *) *prop, netbytes);
- break;
-
- case 16:
- nbytes = reply.nItems * sizeof (short);
- netbytes = reply.nItems << 1;
-- if (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1))
-+ if (nbytes + 1 > 0 &&
-+ (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
- _XRead16Pad (dpy, (short *) *prop, netbytes);
- break;
-
- case 32:
- nbytes = reply.nItems * sizeof (long);
- netbytes = reply.nItems << 2;
-- if (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1))
-+ if (nbytes + 1 > 0 &&
-+ (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
- _XRead32 (dpy, (long *) *prop, netbytes);
- break;
-
-Index: lib/X11/OpenDis.c
-diff -u lib/X11/OpenDis.c:1.1 X11/xc/lib/X11/OpenDis.c:1.2
---- lib/X11/OpenDis.c:1.1 Fri Sep 5 02:58:48 1997
-+++ lib/X11/OpenDis.c Mon Jul 10 15:20:35 2000
-@@ -371,6 +371,14 @@
- dpy->max_request_size = u.setup->maxRequestSize;
- mask = dpy->resource_mask;
- dpy->resource_shift = 0;
-+ if (!mask)
-+ {
-+ fprintf (stderr, "Xlib: connection to \"%s\" invalid setup\n",
-+ fullname);
-+ OutOfMemory(dpy, setup);
-+ return (NULL);
-+ }
-+
- while (!(mask & 1)) {
- dpy->resource_shift++;
- mask = mask >> 1;
-@@ -390,6 +398,13 @@
- (void) strncpy(dpy->vendor, u.vendor, vendorlen);
- dpy->vendor[vendorlen] = '\0';
- vendorlen = (vendorlen + 3) & ~3; /* round up */
-+/*
-+ * validate setup length
-+ */
-+ if ((int) setuplength - sz_xConnSetup - vendorlen < 0) {
-+ OutOfMemory(dpy, setup);
-+ return (NULL);
-+ }
- memmove (setup, u.vendor + vendorlen,
- (int) setuplength - sz_xConnSetup - vendorlen);
- u.vendor = setup;
-@@ -568,6 +583,8 @@
-
- if (_XReply (dpy, (xReply *) &reply, 0, xFalse)) {
- if (reply.format == 8 && reply.propertyType == XA_STRING &&
-+ (reply.nItems + 1 > 0) &&
-+ (reply.nItems <= req->longLength * 4) &&
- (dpy->xdefaults = Xmalloc (reply.nItems + 1))) {
- _XReadPad (dpy, dpy->xdefaults, reply.nItems);
- dpy->xdefaults[reply.nItems] = '\0';
-Index: lib/X11/XlibInt.c
-diff -u lib/X11/XlibInt.c:1.3 X11/xc/lib/X11/XlibInt.c:1.4
---- lib/X11/XlibInt.c:1.3 Tue Aug 24 12:11:19 1999
-+++ lib/X11/XlibInt.c Mon Jul 10 15:20:35 2000
-@@ -38,6 +38,8 @@
- #define NEED_EVENTS
- #define NEED_REPLIES
-
-+#define GENERIC_LENGTH_LIMIT (1 << 29)
-+
- #include "Xlibint.h"
- #include <X11/Xpoll.h>
- #include <X11/Xtrans.h>
-@@ -1689,6 +1691,17 @@
- != (char *)rep)
- continue;
- }
-+ /*
-+ * Don't accept ridiculously large values for
-+ * generic.length; doing so could cause stack-scribbling
-+ * problems elsewhere.
-+ */
-+ if (rep->generic.length > GENERIC_LENGTH_LIMIT) {
-+ rep->generic.length = GENERIC_LENGTH_LIMIT;
-+ (void) fprintf(stderr,
-+ "Xlib: suspiciously long reply length %d set to %d",
-+ rep->generic.length, GENERIC_LENGTH_LIMIT);
-+ }
- if (extra <= rep->generic.length) {
- if (extra > 0)
- /*
-@@ -1827,6 +1840,13 @@
- #endif
- if (len > *lenp)
- _XEatData(dpy, len - *lenp);
-+ }
-+ if (len < SIZEOF(xReply))
-+ {
-+ _XIOError (dpy);
-+ buf += *lenp;
-+ *lenp = 0;
-+ return buf;
- }
- if (len >= *lenp) {
- buf += *lenp;
-Index: programs/Xserver/os/secauth.c
-diff -u programs/Xserver/os/secauth.c:1.1 X11/xc/programs/Xserver/os/secauth.c:1.3
---- programs/Xserver/os/secauth.c:1.1 Fri Sep 5 03:15:14 1997
-+++ programs/Xserver/os/secauth.c Mon Jul 10 15:23:26 2000
-@@ -47,7 +47,7 @@
- ClientPtr client;
- char **reason;
- {
-- char *policy = *dataP;
-+ CARD8 *policy = *(CARD8 **)dataP;
- int length;
- Bool permit;
- int nPolicies;
-@@ -61,13 +61,13 @@
- }
-
- permit = (*policy++ == 0);
-- nPolicies = *policy++;
-+ nPolicies = (CARD8) *policy++;
-
- length -= 2;
-
- sitePolicies = SecurityGetSitePolicyStrings(&nSitePolicies);
-
-- while (nPolicies) {
-+ while (nPolicies > 0) {
- int strLen, sitePolicy;
-
- if (length == 0) {
-@@ -75,7 +75,7 @@
- return FALSE;
- }
-
-- strLen = *policy++;
-+ strLen = (CARD8) *policy++;
- if (--length < strLen) {
- *reason = InvalidPolicyReason;
- return FALSE;
-@@ -87,7 +87,7 @@
- {
- char *testPolicy = sitePolicies[sitePolicy];
- if ((strLen == strlen(testPolicy)) &&
-- (strncmp(policy, testPolicy, strLen) == 0))
-+ (strncmp((char *)policy, testPolicy, strLen) == 0))
- {
- found = TRUE; /* need to continue parsing the policy... */
- break;
-@@ -107,7 +107,7 @@
- }
-
- *data_lengthP = length;
-- *dataP = policy;
-+ *dataP = (char *)policy;
- return TRUE;
- }
-
-Index: programs/Xserver/os/xdmcp.c
-diff -u programs/Xserver/os/xdmcp.c:1.1.1.2 X11/xc/programs/Xserver/os/xdmcp.c:1.2
---- programs/Xserver/os/xdmcp.c:1.1.1.2 Fri Jan 8 10:56:48 1999
-+++ programs/Xserver/os/xdmcp.c Mon Jul 10 15:26:07 2000
-@@ -1,5 +1,5 @@
- /* $XConsortium: xdmcp.c /main/34 1996/12/02 10:23:29 lehors $ */
--/* $XFree86: xc/programs/Xserver/os/xdmcp.c,v 3.9.2.1 1998/12/18 11:56:34 dawes Exp $ */
-+/* $XFree86: xc/programs/Xserver/os/xdmcp.c,v 3.9.2.2 2000/02/08 20:32:12 dawes Exp $ */
- /*
- * Copyright 1989 Network Computing Devices, Inc., Mountain View, California.
- *
-@@ -290,7 +290,10 @@
- return (i + 1);
- }
- if (strcmp(argv[i], "-port") == 0) {
-- ++i;
-+ if (++i == argc) {
-+ ErrorF("Xserver: missing port number in command line\n");
-+ exit(1);
-+ }
- xdm_udp_port = atoi(argv[i]);
- return (i + 1);
- }
-@@ -300,18 +303,28 @@
- }
- if (strcmp(argv[i], "-class") == 0) {
- ++i;
-+ if (++i == argc) {
-+ ErrorF("Xserver: missing class name in command line\n");
-+ exit(1);
-+ }
- defaultDisplayClass = argv[i];
- return (i + 1);
- }
- #ifdef HASXDMAUTH
- if (strcmp(argv[i], "-cookie") == 0) {
-- ++i;
-+ if (++i == argc) {
-+ ErrorF("Xserver: missing cookie data in command line\n");
-+ exit(1);
-+ }
- xdmAuthCookie = argv[i];
- return (i + 1);
- }
- #endif
- if (strcmp(argv[i], "-displayID") == 0) {
-- ++i;
-+ if (++i == argc) {
-+ ErrorF("Xserver: missing displayID in command line\n");
-+ exit(1);
-+ }
- XdmcpRegisterManufacturerDisplayID (argv[i], strlen (argv[i]));
- return (i + 1);
- }
-Index: programs/Xserver/xkb/ddxLoad.c
-diff -u programs/Xserver/xkb/ddxLoad.c:1.1.1.3 X11/xc/programs/Xserver/xkb/ddxLoad.c:1.2
---- programs/Xserver/xkb/ddxLoad.c:1.1.1.3 Sat Nov 28 01:49:13 1998
-+++ programs/Xserver/xkb/ddxLoad.c Mon Jul 10 15:28:10 2000
-@@ -24,7 +24,7 @@
- THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ********************************************************/
--/* $XFree86: xc/programs/Xserver/xkb/ddxLoad.c,v 3.19.2.3 1998/09/27 12:59:29 hohndel Exp $ */
-+/* $XFree86: xc/programs/Xserver/xkb/ddxLoad.c,v 3.19.2.4 2000/06/15 23:24:07 dawes Exp $ */
-
- #include <stdio.h>
- #include <ctype.h>
-@@ -139,10 +139,8 @@
- +strlen(file)+strlen(xkm_output_dir)
- +strlen(outFile)+53 > PATH_MAX)
- {
--#ifdef DEBUG
- ErrorF("compiler command for keymap (%s) exceeds max length\n",
- names->keymap);
--#endif
- return False;
- }
- #ifndef __EMX__
-@@ -169,10 +167,8 @@
- +strlen(file)+strlen(xkm_output_dir)
- +strlen(outFile)+49 > PATH_MAX)
- {
--#ifdef DEBUG
- ErrorF("compiler command for keymap (%s) exceeds max length\n",
- names->keymap);
--#endif
- return False;
- }
- sprintf(cmd,"xkbcomp -w %d -xkm %s%s -em1 %s -emp %s -eml %s keymap/%s %s%s.xkm",
-@@ -236,6 +232,10 @@
- sprintf(keymap,"server-%s",display);
- }
- else {
-+ if (strlen(names->keymap) > PATH_MAX - 1) {
-+ ErrorF("name of keymap (%s) exceeds max length\n", names->keymap);
-+ return False;
-+ }
- strcpy(keymap,names->keymap);
- }
-
-@@ -254,10 +254,8 @@
- +strlen(POST_ERROR_MSG1)+strlen(xkm_output_dir)
- +strlen(keymap)+48 > PATH_MAX)
- {
--#ifdef DEBUG
- ErrorF("compiler command for keymap (%s) exceeds max length\n",
- names->keymap);
--#endif
- return False;
- }
- #ifndef WIN32
-@@ -294,10 +292,8 @@
- +strlen(ERROR_PREFIX)+strlen(POST_ERROR_MSG1)
- +strlen(xkm_output_dir)+strlen(keymap)+44 > PATH_MAX)
- {
--#ifdef DEBUG
- ErrorF("compiler command for keymap (%s) exceeds max length\n",
- names->keymap);
--#endif
- return False;
- }
- #ifndef WIN32
-Index: programs/Xserver/xkb/xkbInit.c
-diff -u programs/Xserver/xkb/xkbInit.c:1.1.1.2 X11/xc/programs/Xserver/xkb/xkbInit.c:1.3
---- programs/Xserver/xkb/xkbInit.c:1.1.1.2 Sat Mar 7 09:21:55 1998
-+++ programs/Xserver/xkb/xkbInit.c Mon Jul 10 15:28:10 2000
-@@ -24,7 +24,7 @@
- THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- ********************************************************/
--/* $XFree86: xc/programs/Xserver/xkb/xkbInit.c,v 3.12.2.2 1998/02/24 13:20:07 dawes Exp $ */
-+/* $XFree86: xc/programs/Xserver/xkb/xkbInit.c,v 3.12.2.3 2000/06/15 21:58:34 dawes Exp $ */
-
- #include <stdio.h>
- #include <stdlib.h>
-@@ -915,8 +915,13 @@
- #endif
- else if (strncmp(argv[i], "-xkbmap", 7) == 0) {
- if(++i < argc) {
-- XkbInitialMap= argv[i];
-- return 2;
-+ if (strlen(argv[i]) < PATH_MAX) {
-+ XkbInitialMap= argv[i];
-+ return 2;
-+ } else {
-+ ErrorF("-xkbmap pathname too long\n");
-+ return -1;
-+ }
- }
- else {
- return -1;
-@@ -924,8 +929,13 @@
- }
- else if (strncmp(argv[i], "-xkbdb", 7) == 0) {
- if(++i < argc) {
-- XkbDB= argv[i];
-- return 2;
-+ if (strlen(argv[i]) < PATH_MAX) {
-+ XkbDB= argv[i];
-+ return 2;
-+ } else {
-+ ErrorF("-xkbdb pathname too long\n");
-+ return -1;
-+ }
- }
- else {
- return -1;
-Index: programs/xfs/os/waitfor.c
-diff -u programs/xfs/os/waitfor.c:1.1 X11/xc/programs/xfs/os/waitfor.c:1.2
---- programs/xfs/os/waitfor.c:1.1 Fri Sep 5 03:16:07 1997
-+++ programs/xfs/os/waitfor.c Mon Jul 10 15:32:38 2000
-@@ -1,5 +1,5 @@
- /* $XConsortium: waitfor.c /main/15 1996/08/30 14:22:34 kaleb $ */
--/* $XFree86: xc/programs/xfs/os/waitfor.c,v 3.5 1997/01/18 07:02:48 dawes Exp $ */
-+/* $XFree86: xc/programs/xfs/os/waitfor.c,v 3.5.2.1 2000/06/15 21:58:35 dawes Exp $ */
- /*
- * waits for input
- */
-@@ -212,7 +212,7 @@
- while (clientsReadable.fds_bits[i]) {
- curclient = ffs(clientsReadable.fds_bits[i]) - 1;
- conn = ConnectionTranslation[curclient + (i << 5)];
-- FD_CLR (curclient, &clientsReadable);
-+ clientsReadable.fds_bits[i] &= ~(((fd_mask)1L) << curclient);
- client = clients[conn];
- if (!client)
- continue;
---- programs/xauth/process.c.orig Fri Jul 23 15:50:50 1999
-+++ programs/xauth/process.c Mon Sep 25 20:48:02 2000
-@@ -769,21 +769,18 @@
- static int write_auth_file (tmp_nam)
- char *tmp_nam;
- {
-- FILE *fp;
-+ FILE *fp = NULL;
- AuthList *list;
--
-+ int fd;
- /*
- * xdm and auth spec assumes auth file is 12 or fewer characters
- */
- strcpy (tmp_nam, xauth_filename);
- strcat (tmp_nam, "-n"); /* for new */
- (void) unlink (tmp_nam);
-- fp = fopen (tmp_nam, "wb"); /* umask is still set to 0077 */
-- if (!fp) {
-- fprintf (stderr, "%s: unable to open tmp file \"%s\"\n",
-- ProgramName, tmp_nam);
-- return -1;
-- }
-+ /* CPhipps 2000/02/12 - fix file unlink/fopen race */
-+ fd = open(tmp_nam, O_WRONLY|O_CREAT|O_EXCL, 0600);
-+ if (fd != -1) fp = fdopen(fd, "wb");
-
- /*
- * Write MIT-MAGIC-COOKIE-1 first, because R4 Xlib knows
diff --git a/x11/XFree86/pkg-plist b/x11/XFree86/pkg-plist
index 33c14b79934a..cbc1ced1810e 100644
--- a/x11/XFree86/pkg-plist
+++ b/x11/XFree86/pkg-plist
@@ -1442,9 +1442,11 @@ lib/X11/xkb/symbols/pc104
lib/X11/xkb/symbols/pl
lib/X11/xkb/symbols/pt
lib/X11/xkb/symbols/ralt
+lib/X11/xkb/symbols/ro
lib/X11/xkb/symbols/ru
lib/X11/xkb/symbols/se
lib/X11/xkb/symbols/sgi/jp
+lib/X11/xkb/symbols/si
lib/X11/xkb/symbols/sony/us
lib/X11/xkb/symbols/sun/se
lib/X11/xkb/symbols/sun/us
@@ -1466,7 +1468,7 @@ lib/X11/xsm/system.xsm
lib/libFS.a
lib/libICE.a
lib/libICE.so
-lib/libICE.so.6.3
+lib/libICE.so.6
lib/libPEX5.a
lib/libPEX5.so
lib/libPEX5.so.6
@@ -1475,19 +1477,21 @@ lib/libSM.so
lib/libSM.so.6
lib/libX11.a
lib/libX11.so
-lib/libX11.so.6.1
+lib/libX11.so.6
lib/libXIE.a
lib/libXIE.so
lib/libXIE.so.6
+lib/libXThrStub.so
+lib/libXThrStub.so.6
lib/libXau.a
lib/libXaw.a
lib/libXaw.so
-lib/libXaw.so.6.1
+lib/libXaw.so.6
lib/libXdmcp.a
lib/libXdpms.a
lib/libXext.a
lib/libXext.so
-lib/libXext.so.6.3
+lib/libXext.so.6
lib/libXi.a
lib/libXi.so
lib/libXi.so.6
@@ -1496,16 +1500,14 @@ lib/libXmu.so
lib/libXmu.so.6
lib/libXp.a
lib/libXp.so
-lib/libXp.so.6.2
+lib/libXp.so.6
lib/libXss.a
-lib/libXThrStub.so
-lib/libXThrStub.so.6
lib/libXt.a
lib/libXt.so
lib/libXt.so.6
lib/libXtst.a
lib/libXtst.so
-lib/libXtst.so.6.1
+lib/libXtst.so.6
lib/libXxf86dga.a
lib/libXxf86misc.a
lib/libXxf86vm.a
diff --git a/x11/XFree86/pkg-plist.alpha b/x11/XFree86/pkg-plist.alpha
index 15c68e4d4ac2..e57d0c7e6bd7 100644
--- a/x11/XFree86/pkg-plist.alpha
+++ b/x11/XFree86/pkg-plist.alpha
@@ -1432,9 +1432,11 @@ lib/X11/xkb/symbols/pc104
lib/X11/xkb/symbols/pl
lib/X11/xkb/symbols/pt
lib/X11/xkb/symbols/ralt
+lib/X11/xkb/symbols/ro
lib/X11/xkb/symbols/ru
lib/X11/xkb/symbols/se
lib/X11/xkb/symbols/sgi/jp
+lib/X11/xkb/symbols/si
lib/X11/xkb/symbols/sony/us
lib/X11/xkb/symbols/sun/se
lib/X11/xkb/symbols/sun/us
diff --git a/x11/XFree86/pkg-plist.pc98 b/x11/XFree86/pkg-plist.pc98
index 6fbf70da710e..399ce008783e 100644
--- a/x11/XFree86/pkg-plist.pc98
+++ b/x11/XFree86/pkg-plist.pc98
@@ -1449,9 +1449,11 @@ lib/X11/xkb/symbols/pc104
lib/X11/xkb/symbols/pl
lib/X11/xkb/symbols/pt
lib/X11/xkb/symbols/ralt
+lib/X11/xkb/symbols/ro
lib/X11/xkb/symbols/ru
lib/X11/xkb/symbols/se
lib/X11/xkb/symbols/sgi/jp
+lib/X11/xkb/symbols/si
lib/X11/xkb/symbols/sony/us
lib/X11/xkb/symbols/sun/se
lib/X11/xkb/symbols/sun/us