dfports/x11/xorg-libraries 6.7.0_2 -> 6.8.1

Hiroki Sato hrs at allbsd.org
Tue Dec 28 01:25:08 PST 2004


Hi,

 Here is a patch to update dfports/x11/xorg-libraries from 6.7.0_2
 to 6.8.1.

Index: Makefile
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/Makefile,v
retrieving revision 1.2
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.2 Makefile
--- Makefile	27 Oct 2004 13:10:17 -0000	1.2
+++ Makefile	28 Dec 2004 04:43:10 -0000
@@ -6,21 +6,13 @@
 # $DragonFly: dfports/x11/xorg-libraries/Makefile,v 1.2 2004/10/27 13:10:17 asmodai Exp $
 #
 
-PORTNAME=	libraries
-PORTVERSION=	6.7.0
-PORTREVISION=	2
+PORTNAME=	xorg-libraries
+PORTVERSION=	6.8.1
 CATEGORIES=	x11
-MASTER_SITES=	http://freedesktop.org/~xorg/X11R6.7.0/src/:xorg \
-		${MASTER_SITE_XORG:S/$/:xorg/} \
-		${MASTER_SITE_LOCAL:S/$/:local/}
-MASTER_SITE_SUBDIR=	R6.7/tars/:xorg \
-			anholt/:local
-PKGNAMEPREFIX=	xorg-
-DISTFILES=	X11R6.7.0-src1.tar.gz:xorg \
-		X11R6.7.0-src3.tar.gz:xorg \
-		Wraphelp2.gz:local
-EXTRACT_ONLY=	X11R6.7.0-src1.tar.gz \
-		X11R6.7.0-src3.tar.gz
+MASTER_SITES=	${MASTER_SITE_XORG}
+MASTER_SITE_SUBDIR=	X11R6.8.1/tars
+DISTFILES=	X11R${PORTVERSION}-src1.tar.gz \
+		X11R${PORTVERSION}-src3.tar.gz
 
 MAINTAINER=	x11 at xxxxxxxxxxx
 COMMENT=	X11 libraries and headers from X.Org
@@ -36,7 +28,7 @@
 		panoramixext-* printext-* randrext-* renderext-* resourceext-* \
 		xextensions-* xf86ext-* xlibs-* xpm-* xproto-*
 
-EXTRA_PATCHES=	${CF_PATCHES} ${LIBRARY_PATCHES}
+EXTRA_PATCHES=	${CF_PATCHES}
 
 XBUILD_DIRS=	lib nls programs/Xserver/include \
 		programs/Xserver/hw/xfree86/parser
@@ -45,9 +37,6 @@
 
 INSTALLS_SHLIB=	yes
 
-post-extract:
-	${GUNZIP_CMD} -c ${DISTDIR}/${DIST_SUBDIR}/Wraphelp2.gz > ${WRKSRC}/lib/Xdmcp/Wraphelp.c
-
 post-patch:
 	${CP} ${FILESDIR}/nls-Compose-microsoft-cp1251 ${WRKSRC}/nls/Compose/microsoft-cp1251
 
@@ -70,11 +59,4 @@
 PLIST_SUB+=	OSMESA:=""
 .endif
 
-# sparc64 doesn't have a working libc_r yet, and -current doesn't need libXThrStub.
-.if ${ARCH} == "sparc64" || ${OSVERSION} >= 500043
-PLIST_SUB+=	XTHRSTUB:="@comment "
-.else
-PLIST_SUB+=	XTHRSTUB:=""
-.endif
-
 .include <bsd.dfport.post.mk>
Index: distinfo
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/distinfo,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 distinfo
--- distinfo	16 Aug 2004 12:30:27 -0000	1.1
+++ distinfo	28 Dec 2004 05:54:36 -0000
@@ -1,6 +1,4 @@
-MD5 (xorg/X11R6.7.0-src1.tar.gz) = 22465263bae7a2e9f5ad77e172cf1ab5
-SIZE (xorg/X11R6.7.0-src1.tar.gz) = 30039655
-MD5 (xorg/X11R6.7.0-src3.tar.gz) = 4c7144786522bbce383b21ace72bf669
-SIZE (xorg/X11R6.7.0-src3.tar.gz) = 10855793
-MD5 (xorg/Wraphelp2.gz) = bd1910492087442288d885412e2e5535
-SIZE (xorg/Wraphelp2.gz) = 3376
+MD5 (xorg/X11R6.8.1-src1.tar.gz) = e352319d423391ff2c03bb7f81fe8d2b
+SIZE (xorg/X11R6.8.1-src1.tar.gz) = 30562401
+MD5 (xorg/X11R6.8.1-src3.tar.gz) = 8578e566e909e7c40300f44b6f0e88d3
+SIZE (xorg/X11R6.8.1-src3.tar.gz) = 10014808
Index: pkg-plist
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/pkg-plist,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 pkg-plist
--- pkg-plist	16 Aug 2004 12:30:27 -0000	1.1
+++ pkg-plist	28 Dec 2004 04:43:43 -0000
@@ -111,6 +111,8 @@
 include/X11/Xaw/PannerP.h
 include/X11/Xaw/Porthole.h
 include/X11/Xaw/PortholeP.h
+include/X11/Xaw/Print.h
+include/X11/Xaw/PrintSP.h
 include/X11/Xaw/Repeater.h
 include/X11/Xaw/RepeaterP.h
 include/X11/Xaw/Reports.h
@@ -184,6 +186,8 @@
 include/X11/Xos_r.h
 include/X11/Xosdefs.h
 include/X11/Xpoll.h
+include/X11/XprintAppUtil/xpapputil.h
+include/X11/XprintUtil/xprintutil.h
 include/X11/Xproto.h
 include/X11/Xprotostr.h
 include/X11/Xresource.h
@@ -288,11 +292,16 @@
 include/X11/extensions/Xag.h
 include/X11/extensions/Xagsrv.h
 include/X11/extensions/Xagstr.h
+include/X11/extensions/Xcomposite.h
 include/X11/extensions/Xcup.h
 include/X11/extensions/Xcupstr.h
+include/X11/extensions/Xdamage.h
 include/X11/extensions/Xdbe.h
 include/X11/extensions/Xdbeproto.h
+include/X11/extensions/Xevie.h
+include/X11/extensions/Xeviestr.h
 include/X11/extensions/Xext.h
+include/X11/extensions/Xfixes.h
 include/X11/extensions/Xinerama.h
 include/X11/extensions/Xrandr.h
 include/X11/extensions/Xrender.h
@@ -303,12 +312,14 @@
 include/X11/extensions/Xvlib.h
 include/X11/extensions/Xvproto.h
 include/X11/extensions/bigreqstr.h
+include/X11/extensions/composite.h
+include/X11/extensions/compositeproto.h
+include/X11/extensions/damage.h
+include/X11/extensions/damageproto.h
+include/X11/extensions/damagewire.h
 include/X11/extensions/dpms.h
 include/X11/extensions/dpmsstr.h
 include/X11/extensions/extutil.h
-include/X11/extensions/fontcache.h
-include/X11/extensions/fontcacheP.h
-include/X11/extensions/fontcachstr.h
 include/X11/extensions/lbxbuf.h
 include/X11/extensions/lbxbufstr.h
 include/X11/extensions/lbxdeltastr.h
@@ -338,6 +349,7 @@
 include/X11/extensions/sync.h
 include/X11/extensions/syncstr.h
 include/X11/extensions/xcmiscstr.h
+include/X11/extensions/xevieplaceholder.h
 include/X11/extensions/xf86bigfont.h
 include/X11/extensions/xf86bigfstr.h
 include/X11/extensions/xf86dga.h
@@ -348,6 +360,8 @@
 include/X11/extensions/xf86mscstr.h
 include/X11/extensions/xf86vmode.h
 include/X11/extensions/xf86vmstr.h
+include/X11/extensions/xfixesproto.h
+include/X11/extensions/xfixeswire.h
 include/X11/extensions/xtestext1.h
 include/X11/extensions/xteststr.h
 include/X11/extensions/xtrapbits.h
@@ -360,12 +374,6 @@
 include/X11/fonts/FS.h
 include/X11/fonts/FSlib.h
 include/X11/fonts/FSproto.h
-include/X11/fonts/codeconv/cconvversion.h
-include/X11/fonts/codeconv/xttcap.h
-include/X11/fonts/codeconv/xttcconv.h
-include/X11/fonts/codeconv/xttcconvP.h
-include/X11/fonts/codeconv/xttcommon.h
-include/X11/fonts/codeconv/xttversion.h
 include/X11/fonts/fontenc.h
 include/X11/fonts/fsmasks.h
 include/X11/keysym.h
@@ -548,8 +556,6 @@
 lib/libXRes.a
 lib/libXRes.so
 lib/libXRes.so.1
-%%XTHRSTUB:%%lib/libXThrStub.so
-%%XTHRSTUB:%%lib/libXThrStub.so.6
 lib/libXTrap.a
 lib/libXTrap.so
 lib/libXTrap.so.6
@@ -560,21 +566,31 @@
 lib/libXaw.so
 lib/libXaw.so.6
 lib/libXaw.so.7
+lib/libXaw.so.8
+lib/libXcomposite.a
+lib/libXcomposite.so
+lib/libXcomposite.so.1
 lib/libXcursor.a
 lib/libXcursor.so
 lib/libXcursor.so.1
+lib/libXdamage.a
+lib/libXdamage.so
+lib/libXdamage.so.1
 lib/libXdmcp.a
 lib/libXdmcp.so
 lib/libXdmcp.so.0
+lib/libXevie.a
+lib/libXevie.so
+lib/libXevie.so.1
 lib/libXext.a
 lib/libXext.so
 lib/libXext.so.6
+lib/libXfixes.a
+lib/libXfixes.so
+lib/libXfixes.so.3
 lib/libXfont.a
 lib/libXfont.so
 lib/libXfont.so.1
-lib/libXfontcache.a
-lib/libXfontcache.so
-lib/libXfontcache.so.1
 lib/libXi.a
 lib/libXi.so
 lib/libXi.so.6
@@ -593,6 +609,8 @@
 lib/libXpm.a
 lib/libXpm.so
 lib/libXpm.so.4
+lib/libXprintAppUtil.a
+lib/libXprintUtil.a
 lib/libXrandr.a
 lib/libXrandr.so
 lib/libXrandr.so.2
@@ -646,5 +664,12 @@
 lib/libxkbui.a
 lib/libxkbui.so
 lib/libxkbui.so.1
+libdata/pkgconfig/xcomposite.pc
 libdata/pkgconfig/xcursor.pc
+libdata/pkgconfig/xdamage.pc
+libdata/pkgconfig/xevie.pc
+libdata/pkgconfig/xfixes.pc
 libdata/pkgconfig/xrender.pc
+ at dirrm include/X11/XprintAppUtil
+ at dirrm include/X11/XprintUtil
+ at dirrm lib/X11/locale/zh_CN.UTF-8
Index: files/patch-UIThrStubs.c
===================================================================
RCS file: files/patch-UIThrStubs.c
diff -N files/patch-UIThrStubs.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-UIThrStubs.c	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,17 @@
+Index: lib/X11/UIThrStubs.c
+===================================================================
+RCS file: /cvs/xorg/xc/lib/X11/UIThrStubs.c,v
+retrieving revision 1.3
+retrieving revision 1.4
+diff -u -u -r1.3 -r1.4
+--- lib/X11/UIThrStubs.c	28 May 2004 23:26:44 -0000	1.3
++++ lib/X11/UIThrStubs.c	13 Oct 2004 07:38:00 -0000	1.4
+@@ -99,7 +99,7 @@
+ #else
+ #include <pthread.h>
+ typedef pthread_t xthread_t;
+-#if __GNUC__ >= 3
++#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+ xthread_t pthread_self()    __attribute__ ((weak, alias ("_Xthr_self_stub_")));
+ int pthread_mutex_init()    __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
+ int pthread_mutex_destroy() __attribute__ ((weak, alias ("_Xthr_zero_stub_")));
Index: files/patch-Xcomposite-Imakefile
===================================================================
RCS file: files/patch-Xcomposite-Imakefile
diff -N files/patch-Xcomposite-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Xcomposite-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,11 @@
+--- lib/Xcomposite/Imakefile.orig	Fri Oct  1 17:42:38 2004
++++ lib/Xcomposite/Imakefile	Fri Oct  1 17:43:22 2004
+@@ -61,7 +61,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xcomposite.pc.in > $@
+ 
+-InstallNonExecFile(xcomposite.pc,$(USRLIBDIR)/pkgconfig)
++InstallNonExecFile(xcomposite.pc,$(PROJECTROOT)/libdata/pkgconfig)
+ 
+ clean::
+ 	RemoveFile(xcomposite.pc)
Index: files/patch-Xdamage-Imakefile
===================================================================
RCS file: files/patch-Xdamage-Imakefile
diff -N files/patch-Xdamage-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Xdamage-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,11 @@
+--- lib/Xdamage/Imakefile.orig	Fri Oct  1 17:42:44 2004
++++ lib/Xdamage/Imakefile	Fri Oct  1 17:44:54 2004
+@@ -61,7 +61,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xdamage.pc.in > $@
+ 
+-InstallNonExecFile(xdamage.pc,$(USRLIBDIR)/pkgconfig)
++InstallNonExecFile(xdamage.pc,$(PROJECTROOT)/libdata/pkgconfig)
+ 
+ clean::
+ 	RemoveFile(xdamage.pc)
Index: files/patch-Xevie-Imakefile
===================================================================
RCS file: files/patch-Xevie-Imakefile
diff -N files/patch-Xevie-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Xevie-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,11 @@
+--- lib/Xevie/Imakefile.orig	Fri Oct  1 17:42:49 2004
++++ lib/Xevie/Imakefile	Fri Oct  1 17:44:51 2004
+@@ -66,7 +66,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xevie.pc.in > $@
+ 
+-InstallNonExecFile(xevie.pc,$(USRLIBDIR)/pkgconfig)
++InstallNonExecFile(xevie.pc,$(PROJECTROOT)/libdata/pkgconfig)
+ 
+ clean::
+ 	RemoveFile(xevie.pc)
Index: files/patch-Xfixes-Imakefile
===================================================================
RCS file: files/patch-Xfixes-Imakefile
diff -N files/patch-Xfixes-Imakefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Xfixes-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,11 @@
+--- lib/Xfixes/Imakefile.orig	Fri Oct  1 17:42:54 2004
++++ lib/Xfixes/Imakefile	Fri Oct  1 17:44:58 2004
+@@ -68,7 +68,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xfixes.pc.in > $@
+ 
+-InstallNonExecFile(xfixes.pc,$(USRLIBDIR)/pkgconfig)
++InstallNonExecFile(xfixes.pc,$(PROJECTROOT)/libdata/pkgconfig)
+ 
+ clean::
+ 	RemoveFile(xfixes.pc)
Index: files/patch-Xrender-Imakefile
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/files/patch-Xrender-Imakefile,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 patch-Xrender-Imakefile
--- files/patch-Xrender-Imakefile	16 Aug 2004 12:30:27 -0000	1.1
+++ files/patch-Xrender-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -1,39 +1,11 @@
-Index: lib/Xrender/Imakefile
-===================================================================
-RCS file: /cvs/xorg/xc/lib/Xrender/Imakefile,v
-retrieving revision 1.2
-diff -u -r1.2 Imakefile
---- lib/Xrender/Imakefile	23 Apr 2004 18:43:50 -0000	1.2
-+++ lib/Xrender/Imakefile	7 Jul 2004 19:01:02 -0000
-@@ -133,6 +133,16 @@
- 
- HEADERS = Xrender.h $(NONSTANDARD_HEADERS)
- 
-+SUBSTVARS=prefix="$(PROJECTROOT)" \
-+          exec_prefix="$(BINDIR)" \
-+          libdir="$(USRLIBDIR)" \
-+          includedir="$(INCROOT)" \
-+          VERSION="0.8.4" \
-+          X_REQUIRES="" \
-+          RENDER_CFLAGS="" \
-+          X_NON_PKG_CFLAGS="" \
-+          X_NON_PKG_LIBS="-lX11 -lXext"
-+
- #include <Library.tmpl>
+--- lib/Xrender/Imakefile.orig	Sat Oct 16 15:41:02 2004
++++ lib/Xrender/Imakefile	Sat Oct 16 15:42:35 2004
+@@ -161,7 +161,7 @@
+ 	RemoveFile($@)
+ 	sh ../Xcursor/config-subst $(SUBSTVARS) < xrender.pc.in > $@
  
- DependTarget()
-@@ -142,3 +152,14 @@
- distclean:: clean
- 	RemoveFile(Makefile)
- #endif
-+
-+all:: xrender.pc
-+
-+xrender.pc: xrender.pc.in
-+	RemoveFile($@)
-+	sh ../Xcursor/config-subst $(SUBSTVARS) < xrender.pc.in > $@
-+
+-InstallNonExecFile(xrender.pc,$(USRLIBDIR)/pkgconfig)
 +InstallNonExecFile(xrender.pc,$(PROJECTROOT)/libdata/pkgconfig)
-+
-+clean::
-+	RemoveFile(xrender.pc)
+ 
+ clean::
+ 	RemoveFile(xrender.pc)
Index: files/patch-dps-Imakefile
===================================================================
RCS file: /cvs/dfports/x11/xorg-libraries/files/patch-dps-Imakefile,v
retrieving revision 1.1
diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.1 patch-dps-Imakefile
--- files/patch-dps-Imakefile	16 Aug 2004 12:30:27 -0000	1.1
+++ files/patch-dps-Imakefile	28 Dec 2004 04:44:29 -0000
@@ -1,37 +1,29 @@
---- lib/dps/Imakefile.orig	Thu Mar  4 09:47:01 2004
-+++ lib/dps/Imakefile	Thu May 27 18:13:27 2004
-@@ -29,7 +29,6 @@
-             SED = sed
-             AWK = awk
-            SORT = sort
--         PSWRAP = PsWrap
- 
- COMMONOBJECTFILES = \
- 	dpsclient.o\
-@@ -201,7 +200,7 @@
+--- lib/dps/Imakefile.orig	Mon May 24 12:06:58 2004
++++ lib/dps/Imakefile	Fri Sep 10 22:12:26 2004
+@@ -201,8 +201,6 @@
  
  includes:: $(DPSOPSCFILES) $(PSOPSCFILES) $(HEADERS)
  
 -$(DPSOPSCFILES) $(PSOPSCFILES): HostProgramTargetName($(PSWRAP))
-+$(DPSOPSCFILES) $(PSOPSCFILES): PsWrapDependency
- 
+-
  SRCS = \
  	${COMMONSOURCEFILES} \
-@@ -224,16 +223,11 @@
+ 	${XSOURCEFILES} \
+@@ -224,16 +222,11 @@
  
  .SUFFIXES: .psw .h
  
 -.psw.c : HostProgramTargetName($(PSWRAP))
-+.psw.c : PsWrapDependency
++.psw.c :
  	RunProgram(PSWRAP,-a -o $*.c -h $*.h $<)
  
 -.psw.h : HostProgramTargetName($(PSWRAP))
-+.psw.h : PsWrapDependency
++.psw.h :
  	RunProgram(PSWRAP,-a -h $*.h $< > /dev/null)
 -
 -HostProgramTargetName($(PSWRAP)):
 -	@echo "checking $@ over in $(PSWRAPSRC) first..."; \
--	cd $(PSWRAPSRC) && $(MAKE) pswraponly; \
+-	test -d $(PSWRAPSRC) && cd $(PSWRAPSRC) && $(MAKE) pswraponly; \
 -	echo "okay, continuing in $(CURRENT_DIR)"
  
  includes :: $(HEADERS)
Index: files/patch-drm.h
===================================================================
RCS file: files/patch-drm.h
diff -N files/patch-drm.h
--- files/patch-drm.h	16 Aug 2004 12:30:27 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
---- programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h	Mon Apr  5 23:28:41 2004
-+++ programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h	Mon Apr  5 23:32:53 2004
-@@ -46,8 +46,8 @@
- #define DRM_IOC_WRITE		_IOC_WRITE
- #define DRM_IOC_READWRITE	_IOC_READ|_IOC_WRITE
- #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
--#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
--#if defined(__FreeBSD__) && defined(IN_MODULE)
-+#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
-+#if (defined(__FreeBSD__) || defined(__DragonFly__)) && defined(IN_MODULE)
- /* Prevent name collision when including sys/ioccom.h */
- #undef ioctl
- #include <sys/ioccom.h>
Index: files/patch-xpm-sec
===================================================================
RCS file: files/patch-xpm-sec
diff -N files/patch-xpm-sec
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-xpm-sec	28 Dec 2004 04:44:29 -0000
@@ -0,0 +1,228 @@
+? extras/Xpm/lib/xorg681-xpm-secadd.patch
+Index: extras/Xpm/lib/Attrib.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/Attrib.c,v
+retrieving revision 1.1.1.1.6.1
+diff -u -r1.1.1.1.6.1 Attrib.c
+--- extras/Xpm/lib/Attrib.c	15 Sep 2004 15:47:39 -0000	1.1.1.1.6.1
++++ extras/Xpm/lib/Attrib.c	5 Nov 2004 03:21:02 -0000
+@@ -52,7 +52,7 @@
+     XpmColor **colorTable, **color;
+     int a;
+ 
+-    if (ncolors >= SIZE_MAX / sizeof(XpmColor *)) 
++    if (ncolors >= UINT_MAX / sizeof(XpmColor *)) 
+ 	return XpmNoMemory;
+ 
+     colorTable = (XpmColor **) XpmMalloc(ncolors * sizeof(XpmColor *));
+Index: extras/Xpm/lib/CrDatFrI.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/CrDatFrI.c,v
+retrieving revision 1.2.4.1
+diff -u -r1.2.4.1 CrDatFrI.c
+--- extras/Xpm/lib/CrDatFrI.c	15 Sep 2004 15:47:39 -0000	1.2.4.1
++++ extras/Xpm/lib/CrDatFrI.c	5 Nov 2004 03:21:02 -0000
+@@ -124,7 +124,7 @@
+      */
+     header_nlines = 1 + image->ncolors;
+     header_size = sizeof(char *) * header_nlines;
+-    if (header_size >= SIZE_MAX / sizeof(char *))
++    if (header_size >= UINT_MAX / sizeof(char *))
+ 	return (XpmNoMemory);
+     header = (char **) XpmCalloc(header_size, sizeof(char *));
+     if (!header)
+Index: extras/Xpm/lib/create.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/create.c,v
+retrieving revision 1.2.4.1
+diff -u -r1.2.4.1 create.c
+--- extras/Xpm/lib/create.c	15 Sep 2004 15:47:39 -0000	1.2.4.1
++++ extras/Xpm/lib/create.c	5 Nov 2004 03:21:03 -0000
+@@ -1,4 +1,4 @@
+-/* $XdotOrg: xc/extras/Xpm/lib/create.c,v 1.2.4.1 2004/09/15 15:47:39 daniel Exp $ */
++/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
+ /*
+  * Copyright (C) 1989-95 GROUPE BULL
+  *
+@@ -817,7 +817,7 @@
+ 
+     ErrorStatus = XpmSuccess;
+ 
+-    if (image->ncolors >= SIZE_MAX / sizeof(Pixel)) 
++    if (image->ncolors >= UINT_MAX / sizeof(Pixel)) 
+ 	return (XpmNoMemory);
+ 
+     /* malloc pixels index tables */
+@@ -992,8 +992,10 @@
+ 	return (XpmNoMemory);
+ 
+ #if !defined(FOR_MSW) && !defined(AMIGA)
+-    if (height != 0 && (*image_return)->bytes_per_line >= SIZE_MAX / height)
++    if (height != 0 && (*image_return)->bytes_per_line >= SIZE_MAX / height) {
++	XDestroyImage(*image_return);
+ 	return XpmNoMemory;
++    }
+     /* now that bytes_per_line must have been set properly alloc data */
+     (*image_return)->data =
+ 	(char *) XpmMalloc((*image_return)->bytes_per_line * height);
+@@ -2061,8 +2063,8 @@
+ 	xpmGetCmt(data, &colors_cmt);
+ 
+     /* malloc pixels index tables */
+-    if (ncolors >= SIZE_MAX / sizeof(Pixel)) 
+-	return XpmNoMemory;
++    if (ncolors >= UINT_MAX / sizeof(Pixel)) 
++	RETURN(XpmNoMemory);
+ 
+     image_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * ncolors);
+     if (!image_pixels)
+@@ -2366,7 +2368,7 @@
+ 
+ 	    /* array of pointers malloced by need */
+ 	    unsigned short *cidx[256];
+-	    int char1;
++	    unsigned int char1;
+ 
+ 	    bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */
+ 	    for (a = 0; a < ncolors; a++) {
+Index: extras/Xpm/lib/hashtab.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/hashtab.c,v
+retrieving revision 1.1.1.1.6.1
+diff -u -r1.1.1.1.6.1 hashtab.c
+--- extras/Xpm/lib/hashtab.c	15 Sep 2004 15:47:39 -0000	1.1.1.1.6.1
++++ extras/Xpm/lib/hashtab.c	5 Nov 2004 03:21:03 -0000
+@@ -138,13 +138,13 @@
+     unsigned int size = table->size;
+     xpmHashAtom *t, *p;
+     int i;
+-    int oldSize = size;
++    unsigned int oldSize = size;
+ 
+     t = atomTable;
+     HASH_TABLE_GROWS
+ 	table->size = size;
+     table->limit = size / 3;
+-    if (size >= SIZE_MAX / sizeof(*atomTable)) 
++    if (size >= UINT_MAX / sizeof(*atomTable)) 
+ 	return (XpmNoMemory);
+     atomTable = (xpmHashAtom *) XpmMalloc(size * sizeof(*atomTable));
+     if (!atomTable)
+@@ -206,7 +206,7 @@
+     table->size = INITIAL_HASH_SIZE;
+     table->limit = table->size / 3;
+     table->used = 0;
+-    if (table->size >= SIZE_MAX / sizeof(*atomTable))
++    if (table->size >= UINT_MAX / sizeof(*atomTable))
+ 	return (XpmNoMemory);
+     atomTable = (xpmHashAtom *) XpmMalloc(table->size * sizeof(*atomTable));
+     if (!atomTable)
+Index: extras/Xpm/lib/parse.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/parse.c,v
+retrieving revision 1.2.4.1
+diff -u -r1.2.4.1 parse.c
+--- extras/Xpm/lib/parse.c	15 Sep 2004 15:47:39 -0000	1.2.4.1
++++ extras/Xpm/lib/parse.c	5 Nov 2004 03:21:03 -0000
+@@ -1,4 +1,4 @@
+-/* $XdotOrg: xc/extras/Xpm/lib/parse.c,v 1.2.4.1 2004/09/15 15:47:39 daniel Exp $ */
++/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
+ /*
+  * Copyright (C) 1989-95 GROUPE BULL
+  *
+@@ -205,7 +205,7 @@
+     char **defaults;
+     int ErrorStatus;
+ 
+-    if (ncolors >= SIZE_MAX / sizeof(XpmColor))
++    if (ncolors >= UINT_MAX / sizeof(XpmColor))
+ 	return (XpmNoMemory);
+     colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor));
+     if (!colorTable)
+@@ -218,7 +218,7 @@
+ 	    /*
+ 	     * read pixel value
+ 	     */
+-	    if (cpp >= SIZE_MAX - 1) {
++	    if (cpp >= UINT_MAX - 1) {
+ 		xpmFreeColorTable(colorTable, ncolors);
+ 		return (XpmNoMemory);
+ 	    }
+@@ -306,7 +306,7 @@
+ 	    /*
+ 	     * read pixel value
+ 	     */
+-	    if (cpp >= SIZE_MAX - 1) {
++	    if (cpp >= UINT_MAX - 1) {
+ 		xpmFreeColorTable(colorTable, ncolors);
+ 		return (XpmNoMemory);
+ 	    }
+@@ -374,7 +374,7 @@
+     unsigned int a, x, y;
+ 
+     if ((height > 0 && width >= SIZE_MAX / height) ||
+-	width * height >= SIZE_MAX / sizeof(unsigned int)) 
++	width * height >= UINT_MAX / sizeof(unsigned int)) 
+ 	return XpmNoMemory;
+ #ifndef FOR_MSW
+     iptr2 = (unsigned int *) XpmMalloc(sizeof(unsigned int) * width * height);
+@@ -432,7 +432,7 @@
+ 
+ 	    /* array of pointers malloced by need */
+ 	    unsigned short *cidx[256];
+-	    int char1;
++	    unsigned int char1;
+ 
+ 	    bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */
+ 	    for (a = 0; a < ncolors; a++) {
+Index: extras/Xpm/lib/scan.c
+===================================================================
+RCS file: /cvs/xorg/xc/extras/Xpm/lib/scan.c,v
+retrieving revision 1.2.4.1
+diff -u -r1.2.4.1 scan.c
+--- extras/Xpm/lib/scan.c	15 Sep 2004 15:47:39 -0000	1.2.4.1
++++ extras/Xpm/lib/scan.c	5 Nov 2004 03:21:03 -0000
+@@ -234,14 +234,14 @@
+ 	cpp = 0;
+ 
+     if ((height > 0 && width >= SIZE_MAX / height) ||
+-	width * height >= SIZE_MAX / sizeof(unsigned int))
++	width * height >= UINT_MAX / sizeof(unsigned int))
+ 	RETURN(XpmNoMemory);
+     pmap.pixelindex =
+ 	(unsigned int *) XpmCalloc(width * height, sizeof(unsigned int));
+     if (!pmap.pixelindex)
+ 	RETURN(XpmNoMemory);
+ 
+-    if (pmap.size >= SIZE_MAX / sizeof(Pixel)) 
++    if (pmap.size >= UINT_MAX / sizeof(Pixel)) 
+ 	RETURN(XpmNoMemory);
+ 
+     pmap.pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * pmap.size);
+@@ -308,7 +308,7 @@
+      * get rgb values and a string of char, and possibly a name for each
+      * color
+      */
+-    if (pmap.ncolors >= SIZE_MAX / sizeof(XpmColor))
++    if (pmap.ncolors >= UINT_MAX / sizeof(XpmColor))
+ 	RETURN(XpmNoMemory);
+     colorTable = (XpmColor *) XpmCalloc(pmap.ncolors, sizeof(XpmColor));
+     if (!colorTable)
+@@ -368,7 +368,7 @@
+ 
+     /* first get a character string */
+     a = 0;
+-    if (cpp >= SIZE_MAX - 1)
++    if (cpp >= UINT_MAX - 1)
+ 	return (XpmNoMemory);
+     if (!(s = color->string = (char *) XpmMalloc(cpp + 1)))
+ 	return (XpmNoMemory);
+@@ -461,7 +461,7 @@
+     }
+ 
+     /* first get character strings and rgb values */
+-    if (ncolors >= SIZE_MAX / sizeof(XColor) || cpp >= SIZE_MAX - 1)
++    if (ncolors >= UINT_MAX / sizeof(XColor) || cpp >= UINT_MAX - 1)
+ 	return (XpmNoMemory);
+     xcolors = (XColor *) XpmMalloc(sizeof(XColor) * ncolors);
+     if (!xcolors)
Index: files/patch-xpm-sec.patch4
===================================================================
RCS file: files/patch-xpm-sec.patch4
diff -N files/patch-xpm-sec.patch4
--- files/patch-xpm-sec.patch4	27 Oct 2004 13:10:17 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,498 +0,0 @@
-Index: xc/extras/Xpm/lib/Attrib.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/Attrib.c,v
-retrieving revision 1.1.1.1
-diff -u -r1.1.1.1 Attrib.c
---- extras/Xpm/lib/Attrib.c	15 Feb 2001 07:59:10 -0000	1.1.1.1
-+++ extras/Xpm/lib/Attrib.c	31 Aug 2004 23:28:59 -0000
-@@ -35,7 +35,7 @@
- #include "XpmI.h"
- 
- /* 3.2 backward compatibility code */
--LFUNC(CreateOldColorTable, int, (XpmColor *ct, int ncolors,
-+LFUNC(CreateOldColorTable, int, (XpmColor *ct, unsigned int ncolors,
- 				 XpmColor ***oldct));
- 
- LFUNC(FreeOldColorTable, void, (XpmColor **colorTable, int ncolors));
-@@ -46,11 +46,14 @@
- static int
- CreateOldColorTable(ct, ncolors, oldct)
-     XpmColor *ct;
--    int ncolors;
-+    unsigned int ncolors;
-     XpmColor ***oldct;
- {
-     XpmColor **colorTable, **color;
-     int a;
-+
-+    if (ncolors >= SIZE_MAX / sizeof(XpmColor *)) 
-+	return XpmNoMemory;
- 
-     colorTable = (XpmColor **) XpmMalloc(ncolors * sizeof(XpmColor *));
-     if (!colorTable) {
-Index: xc/extras/Xpm/lib/CrDatFrI.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/CrDatFrI.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 CrDatFrI.c
---- extras/Xpm/lib/CrDatFrI.c	19 Jan 2002 11:08:43 -0000	1.1.1.2
-+++ extras/Xpm/lib/CrDatFrI.c	31 Aug 2004 23:28:59 -0000
-@@ -124,6 +124,8 @@
-      */
-     header_nlines = 1 + image->ncolors;
-     header_size = sizeof(char *) * header_nlines;
-+    if (header_size >= SIZE_MAX / sizeof(char *))
-+	return (XpmNoMemory);
-     header = (char **) XpmCalloc(header_size, sizeof(char *));
-     if (!header)
- 	return (XpmNoMemory);
-Index: xc/extras/Xpm/lib/WrFFrI.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/WrFFrI.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 WrFFrI.c
---- extras/Xpm/lib/WrFFrI.c	19 Jan 2002 11:08:43 -0000	1.1.1.2
-+++ extras/Xpm/lib/WrFFrI.c	31 Aug 2004 23:28:59 -0000
-@@ -248,6 +248,8 @@
-     unsigned int x, y, h;
- 
-     h = height - 1;
-+    if (cpp != 0 && width >= (SIZE_MAX - 3)/cpp) 
-+	return XpmNoMemory;    
-     p = buf = (char *) XpmMalloc(width * cpp + 3);
-     if (!buf)
- 	return (XpmNoMemory);
-Index: xc/extras/Xpm/lib/XpmI.h
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/XpmI.h,v
-retrieving revision 1.6
-diff -u -r1.6 XpmI.h
---- extras/Xpm/lib/XpmI.h	13 Feb 2004 22:40:56 -0000	1.6
-+++ extras/Xpm/lib/XpmI.h	31 Aug 2004 23:28:59 -0000
-@@ -86,6 +86,18 @@
- 		boundCheckingCalloc((long)(nelem),(long) (elsize))
- #endif
- 
-+#if defined(SCO) || defined(__USLC__)
-+#include <stdint.h>	/* For SIZE_MAX */
-+#endif
-+#include <limits.h>
-+#ifndef SIZE_MAX
-+# ifdef ULONG_MAX
-+#  define SIZE_MAX ULONG_MAX
-+# else 
-+#  define SIZE_MAX UINT_MAX
-+# endif
-+#endif
-+
- #define XPMMAXCMTLEN BUFSIZ
- typedef struct {
-     unsigned int type;
-@@ -187,9 +199,9 @@
- }      *xpmHashAtom;
- 
- typedef struct {
--    int size;
--    int limit;
--    int used;
-+    unsigned int size;
-+    unsigned int limit;
-+    unsigned int used;
-     xpmHashAtom *atomTable;
- }      xpmHashTable;
- 
-Index: xc/extras/Xpm/lib/create.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/create.c,v
-retrieving revision 1.3
-diff -u -r1.3 create.c
---- extras/Xpm/lib/create.c	13 Feb 2004 22:40:56 -0000	1.3
-+++ extras/Xpm/lib/create.c	31 Aug 2004 23:28:59 -0000
-@@ -1,3 +1,4 @@
-+/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
- /*
-  * Copyright (C) 1989-95 GROUPE BULL
-  *
-@@ -816,6 +817,9 @@
- 
-     ErrorStatus = XpmSuccess;
- 
-+    if (image->ncolors >= SIZE_MAX / sizeof(Pixel)) 
-+	return (XpmNoMemory);
-+
-     /* malloc pixels index tables */
-     image_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * image->ncolors);
-     if (!image_pixels)
-@@ -988,6 +992,8 @@
- 	return (XpmNoMemory);
- 
- #if !defined(FOR_MSW) && !defined(AMIGA)
-+    if (height != 0 && (*image_return)->bytes_per_line >= SIZE_MAX / height)
-+	return XpmNoMemory;
-     /* now that bytes_per_line must have been set properly alloc data */
-     (*image_return)->data =
- 	(char *) XpmMalloc((*image_return)->bytes_per_line * height);
-@@ -2055,6 +2061,9 @@
- 	xpmGetCmt(data, &colors_cmt);
- 
-     /* malloc pixels index tables */
-+    if (ncolors >= SIZE_MAX / sizeof(Pixel)) 
-+	return XpmNoMemory;
-+
-     image_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * ncolors);
-     if (!image_pixels)
- 	RETURN(XpmNoMemory);
-@@ -2309,7 +2318,8 @@
- 	    }
- 	    obm = SelectObject(*dc, image->bitmap);
- #endif
--
-+	    if (ncolors > 256)
-+		return (XpmFileInvalid);
- 
- 	    bzero((char *)colidx, 256 * sizeof(short));
- 	    for (a = 0; a < ncolors; a++)
-@@ -2414,6 +2424,9 @@
- 	{
- 	    char *s;
- 	    char buf[BUFSIZ];
-+
-+	    if (cpp >= sizeof(buf))
-+		return (XpmFileInvalid);
- 
- 	    buf[cpp] = '\0';
- 	    if (USE_HASHTABLE) {
-Index: xc/extras/Xpm/lib/data.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/data.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 data.c
---- extras/Xpm/lib/data.c	19 Jan 2002 11:08:44 -0000	1.1.1.2
-+++ extras/Xpm/lib/data.c	31 Aug 2004 23:28:59 -0000
-@@ -375,7 +375,7 @@
- {
-     if (!data->type)
- 	*cmt = NULL;
--    else if (data->CommentLength) {
-+    else if (data->CommentLength != 0 && data->CommentLength < SIZE_MAX - 1) {
- 	*cmt = (char *) XpmMalloc(data->CommentLength + 1);
- 	strncpy(*cmt, data->Comment, data->CommentLength);
- 	(*cmt)[data->CommentLength] = '\0';
-Index: xc/extras/Xpm/lib/hashtab.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/hashtab.c,v
-retrieving revision 1.1.1.1
-diff -u -r1.1.1.1 hashtab.c
---- extras/Xpm/lib/hashtab.c	15 Feb 2001 07:59:10 -0000	1.1.1.1
-+++ extras/Xpm/lib/hashtab.c	31 Aug 2004 23:28:59 -0000
-@@ -135,7 +135,7 @@
-     xpmHashTable *table;
- {
-     xpmHashAtom *atomTable = table->atomTable;
--    int size = table->size;
-+    unsigned int size = table->size;
-     xpmHashAtom *t, *p;
-     int i;
-     int oldSize = size;
-@@ -144,6 +144,8 @@
-     HASH_TABLE_GROWS
- 	table->size = size;
-     table->limit = size / 3;
-+    if (size >= SIZE_MAX / sizeof(*atomTable)) 
-+	return (XpmNoMemory);
-     atomTable = (xpmHashAtom *) XpmMalloc(size * sizeof(*atomTable));
-     if (!atomTable)
- 	return (XpmNoMemory);
-@@ -204,6 +206,8 @@
-     table->size = INITIAL_HASH_SIZE;
-     table->limit = table->size / 3;
-     table->used = 0;
-+    if (table->size >= SIZE_MAX / sizeof(*atomTable))
-+	return (XpmNoMemory);
-     atomTable = (xpmHashAtom *) XpmMalloc(table->size * sizeof(*atomTable));
-     if (!atomTable)
- 	return (XpmNoMemory);
-Index: xc/extras/Xpm/lib/parse.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/parse.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 parse.c
---- extras/Xpm/lib/parse.c	19 Jan 2002 11:08:44 -0000	1.1.1.2
-+++ extras/Xpm/lib/parse.c	31 Aug 2004 23:28:59 -0000
-@@ -1,3 +1,4 @@
-+/* $XdotOrg: pre-CVS proposed fix for CESA-2004-003 alanc 7/25/2004 $ */
- /*
-  * Copyright (C) 1989-95 GROUPE BULL
-  *
-@@ -44,6 +45,24 @@
- #include <ctype.h>
- #include <string.h>
- 
-+#ifdef HAS_STRLCAT
-+# define STRLCAT(dst, src, dstsize) { \
-+  	if (strlcat(dst, src, dstsize) >= (dstsize)) \
-+	    return (XpmFileInvalid); }
-+# define STRLCPY(dst, src, dstsize) { \
-+  	if (strlcpy(dst, src, dstsize) >= (dstsize)) \
-+	    return (XpmFileInvalid); }
-+#else
-+# define STRLCAT(dst, src, dstsize) { \
-+	if ((strlen(dst) + strlen(src)) < (dstsize)) \
-+ 	    strcat(dst, src); \
-+	else return (XpmFileInvalid); }
-+# define STRLCPY(dst, src, dstsize) { \
-+	if (strlen(src) < (dstsize)) \
-+ 	    strcpy(dst, src); \
-+	else return (XpmFileInvalid); }
-+#endif
-+
- LFUNC(ParsePixels, int, (xpmData *data, unsigned int width,
- 			 unsigned int height, unsigned int ncolors,
- 			 unsigned int cpp, XpmColor *colorTable,
-@@ -66,7 +85,7 @@
-     unsigned int *extensions;
- {
-     unsigned int l;
--    char buf[BUFSIZ];
-+    char buf[BUFSIZ + 1];
- 
-     if (!data->format) {		/* XPM 2 or 3 */
- 
-@@ -175,10 +194,10 @@
-     XpmColor **colorTablePtr;
-     xpmHashTable *hashtable;
- {
--    unsigned int key = 0, l, a, b;
-+    unsigned int key = 0, l, a, b, len;
-     unsigned int curkey;		/* current color key */
-     unsigned int lastwaskey;		/* key read */
--    char buf[BUFSIZ];
-+    char buf[BUFSIZ+1];
-     char curbuf[BUFSIZ];		/* current buffer */
-     char **sptr, *s;
-     XpmColor *color;
-@@ -186,6 +205,8 @@
-     char **defaults;
-     int ErrorStatus;
- 
-+    if (ncolors >= SIZE_MAX / sizeof(XpmColor))
-+	return (XpmNoMemory);
-     colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor));
-     if (!colorTable)
- 	return (XpmNoMemory);
-@@ -197,6 +218,10 @@
- 	    /*
- 	     * read pixel value
- 	     */
-+	    if (cpp >= SIZE_MAX - 1) {
-+		xpmFreeColorTable(colorTable, ncolors);
-+		return (XpmNoMemory);
-+	    }
- 	    color->string = (char *) XpmMalloc(cpp + 1);
- 	    if (!color->string) {
- 		xpmFreeColorTable(colorTable, ncolors);
-@@ -234,13 +259,14 @@
- 		}
- 		if (!lastwaskey && key < NKEYS) {	/* open new key */
- 		    if (curkey) {	/* flush string */
--			s = (char *) XpmMalloc(strlen(curbuf) + 1);
-+			len = strlen(curbuf) + 1;
-+			s = (char *) XpmMalloc(len);
- 			if (!s) {
- 			    xpmFreeColorTable(colorTable, ncolors);
- 			    return (XpmNoMemory);
- 			}
- 			defaults[curkey] = s;
--			strcpy(s, curbuf);
-+			memcpy(s, curbuf, len);
- 		    }
- 		    curkey = key + 1;	/* set new key  */
- 		    *curbuf = '\0';	/* reset curbuf */
-@@ -251,9 +277,9 @@
- 			return (XpmFileInvalid);
- 		    }
- 		    if (!lastwaskey)
--			strcat(curbuf, " ");	/* append space */
-+			STRLCAT(curbuf, " ", sizeof(curbuf)); /* append space */
- 		    buf[l] = '\0';
--		    strcat(curbuf, buf);/* append buf */
-+		    STRLCAT(curbuf, buf, sizeof(curbuf));/* append buf */
- 		    lastwaskey = 0;
- 		}
- 	    }
-@@ -261,12 +287,13 @@
- 		xpmFreeColorTable(colorTable, ncolors);
- 		return (XpmFileInvalid);
- 	    }
--	    s = defaults[curkey] = (char *) XpmMalloc(strlen(curbuf) + 1);
-+	    len = strlen(curbuf) + 1;
-+	    s = defaults[curkey] = (char *) XpmMalloc(len);
- 	    if (!s) {
- 		xpmFreeColorTable(colorTable, ncolors);
- 		return (XpmNoMemory);
- 	    }
--	    strcpy(s, curbuf);
-+	    memcpy(s, curbuf, len);
- 	}
-     } else {				/* XPM 1 */
- 	/* get to the beginning of the first string */
-@@ -279,6 +306,10 @@
- 	    /*
- 	     * read pixel value
- 	     */
-+	    if (cpp >= SIZE_MAX - 1) {
-+		xpmFreeColorTable(colorTable, ncolors);
-+		return (XpmNoMemory);
-+	    }
- 	    color->string = (char *) XpmMalloc(cpp + 1);
- 	    if (!color->string) {
- 		xpmFreeColorTable(colorTable, ncolors);
-@@ -307,16 +338,17 @@
- 	    *curbuf = '\0';		/* init curbuf */
- 	    while ((l = xpmNextWord(data, buf, BUFSIZ))) {
- 		if (*curbuf != '\0')
--		    strcat(curbuf, " ");/* append space */
-+		    STRLCAT(curbuf, " ", sizeof(curbuf));/* append space */
- 		buf[l] = '\0';
--		strcat(curbuf, buf);	/* append buf */
-+		STRLCAT(curbuf, buf, sizeof(curbuf));	/* append buf */
- 	    }
--	    s = (char *) XpmMalloc(strlen(curbuf) + 1);
-+	    len = strlen(curbuf) + 1;
-+	    s = (char *) XpmMalloc(len);
- 	    if (!s) {
- 		xpmFreeColorTable(colorTable, ncolors);
- 		return (XpmNoMemory);
- 	    }
--	    strcpy(s, curbuf);
-+	    memcpy(s, curbuf, len);
- 	    color->c_color = s;
- 	    *curbuf = '\0';		/* reset curbuf */
- 	    if (a < ncolors - 1)
-@@ -341,6 +373,9 @@
-     unsigned int *iptr, *iptr2;
-     unsigned int a, x, y;
- 
-+    if ((height > 0 && width >= SIZE_MAX / height) ||
-+	width * height >= SIZE_MAX / sizeof(unsigned int)) 
-+	return XpmNoMemory;
- #ifndef FOR_MSW
-     iptr2 = (unsigned int *) XpmMalloc(sizeof(unsigned int) * width * height);
- #else
-@@ -364,6 +399,9 @@
- 	{
- 	    unsigned short colidx[256];
- 
-+	    if (ncolors > 256)
-+		return (XpmFileInvalid);
-+
- 	    bzero((char *)colidx, 256 * sizeof(short));
- 	    for (a = 0; a < ncolors; a++)
- 		colidx[(unsigned char)colorTable[a].string[0]] = a + 1;
-@@ -441,6 +479,9 @@
- 	{
- 	    char *s;
- 	    char buf[BUFSIZ];
-+
-+	    if (cpp >= sizeof(buf))
-+		return (XpmFileInvalid);
- 
- 	    buf[cpp] = '\0';
- 	    if (USE_HASHTABLE) {
-Index: xc/extras/Xpm/lib/scan.c
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/extras/Xpm/lib/scan.c,v
-retrieving revision 1.1.1.2
-diff -u -r1.1.1.2 scan.c
---- extras/Xpm/lib/scan.c	19 Jan 2002 11:08:44 -0000	1.1.1.2
-+++ extras/Xpm/lib/scan.c	31 Aug 2004 23:28:59 -0000
-@@ -107,7 +107,8 @@
- LFUNC(ScanTransparentColor, int, (XpmColor *color, unsigned int cpp,
- 				  XpmAttributes *attributes));
- 
--LFUNC(ScanOtherColors, int, (Display *display, XpmColor *colors, int ncolors,
-+LFUNC(ScanOtherColors, int, (Display *display, XpmColor *colors, 
-+			     unsigned int ncolors, 
- 			     Pixel *pixels, unsigned int mask,
- 			     unsigned int cpp, XpmAttributes *attributes));
- 
-@@ -232,11 +233,17 @@
-     else
- 	cpp = 0;
- 
-+    if ((height > 0 && width >= SIZE_MAX / height) ||
-+	width * height >= SIZE_MAX / sizeof(unsigned int))
-+	RETURN(XpmNoMemory);
-     pmap.pixelindex =
- 	(unsigned int *) XpmCalloc(width * height, sizeof(unsigned int));
-     if (!pmap.pixelindex)
- 	RETURN(XpmNoMemory);
- 
-+    if (pmap.size >= SIZE_MAX / sizeof(Pixel)) 
-+	RETURN(XpmNoMemory);
-+
-     pmap.pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * pmap.size);
-     if (!pmap.pixels)
- 	RETURN(XpmNoMemory);
-@@ -301,7 +308,8 @@
-      * get rgb values and a string of char, and possibly a name for each
-      * color
-      */
--
-+    if (pmap.ncolors >= SIZE_MAX / sizeof(XpmColor))
-+	RETURN(XpmNoMemory);
-     colorTable = (XpmColor *) XpmCalloc(pmap.ncolors, sizeof(XpmColor));
-     if (!colorTable)
- 	RETURN(XpmNoMemory);
-@@ -360,6 +368,8 @@
- 
-     /* first get a character string */
-     a = 0;
-+    if (cpp >= SIZE_MAX - 1)
-+	return (XpmNoMemory);
-     if (!(s = color->string = (char *) XpmMalloc(cpp + 1)))
- 	return (XpmNoMemory);
-     *s++ = printable[c = a % MAXPRINTABLE];
-@@ -407,7 +417,7 @@
- ScanOtherColors(display, colors, ncolors, pixels, mask, cpp, attributes)
-     Display *display;
-     XpmColor *colors;
--    int ncolors;
-+    unsigned int ncolors;
-     Pixel *pixels;
-     unsigned int mask;
-     unsigned int cpp;
-@@ -451,6 +461,8 @@
-     }
- 
-     /* first get character strings and rgb values */
-+    if (ncolors >= SIZE_MAX / sizeof(XColor) || cpp >= SIZE_MAX - 1)
-+	return (XpmNoMemory);
-     xcolors = (XColor *) XpmMalloc(sizeof(XColor) * ncolors);
-     if (!xcolors)
- 	return (XpmNoMemory);
-Index: xc/lib/Xpm/Imakefile
-===================================================================
-RCS file: /cvs/OpenBSD/XF4/xc/lib/Xpm/Imakefile,v
-retrieving revision 1.1.1.1
-diff -u -r1.1.1.1 Imakefile
---- lib/Xpm/Imakefile	15 Feb 2001 07:56:01 -0000	1.1.1.1
-+++ lib/Xpm/Imakefile	31 Aug 2004 23:28:59 -0000
-@@ -42,11 +42,16 @@
- SPRINTFDEF = -DVOID_SPRINTF
- #endif
- 
-+#if HasStrlcat
-+STRLCATDEF = -DHAS_STRLCAT
-+#endif
-+
- #if defined(Win32Architecture)
- ZPIPEDEF = -DNO_ZPIPE
- #endif
- 
--DEFINES = $(STRDUPDEF) $(STRCASECMPDEF) $(SPRINTFDEF) $(ZPIPEDEF) $(ZFILEDEF)
-+DEFINES = $(STRDUPDEF) $(STRCASECMPDEF) $(SPRINTFDEF) $(STRLCATDEF) \
-+		$(ZPIPEDEF) $(ZFILEDEF)
- 
- HEADERS = xpm.h
- 
Attachment:
pgp00018.pgp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgp00018.pgp
Type: application/octet-stream
Size: 187 bytes
Desc: "Description: PGP signature"
URL: <http://lists.dragonflybsd.org/pipermail/submit/attachments/20041228/2c3381fd/attachment-0018.obj>


More information about the Submit mailing list