From: | Hiroki Sato <hrs@xxxxxxxxxx> |
Date: | Tue, 28 Dec 2004 18:08:20 +0900 (JST) |
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@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 +@dirrm include/X11/XprintAppUtil +@dirrm include/X11/XprintUtil +@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
Description: PGP signature