summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetteri Räty <betelgeuse@gentoo.org>2007-12-30 17:06:33 +0000
committerPetteri Räty <betelgeuse@gentoo.org>2007-12-30 17:06:33 +0000
commita350833e9258e4260fd8d2f532751eaea33a32d3 (patch)
tree7f09a6d4d3e436f7776ec11062afcd2e6a90750f /x11-libs
parentRemove RDEPEND on virtual/libc. (diff)
downloadhistorical-a350833e9258e4260fd8d2f532751eaea33a32d3.tar.gz
historical-a350833e9258e4260fd8d2f532751eaea33a32d3.tar.bz2
historical-a350833e9258e4260fd8d2f532751eaea33a32d3.zip
Clean files.
Package-Manager: portage-2.1.4_rc11
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/openmotif/ChangeLog13
-rw-r--r--x11-libs/openmotif/Manifest58
-rw-r--r--x11-libs/openmotif/files/openmotif-2.1.30-CAN-2004-0687-0688.patch421
-rw-r--r--x11-libs/openmotif/files/openmotif-2.1.30-CAN-2004-0914_sec8.patch14
-rw-r--r--x11-libs/openmotif/files/openmotif-2.1.30-imake-ansi.patch304
-rw-r--r--x11-libs/openmotif/files/openmotif-2.1.30-imake-tmpdir.patch43
-rw-r--r--x11-libs/openmotif/files/openmotif-2.1.30-uil-bad_grammar_fix.diff35
-rw-r--r--x11-libs/openmotif/files/openmotif-2.1.30-xpm.diff440
-rw-r--r--x11-libs/openmotif/files/openmotif-2.1.30-xpm2.diff1601
-rw-r--r--x11-libs/openmotif/files/openmotif-2.2.3-CVE-2005-3964.patch29
-rw-r--r--x11-libs/openmotif/files/openmotif-2.2.3-Mwm.defaults14
-rw-r--r--x11-libs/openmotif/files/site.def77
-rw-r--r--x11-libs/openmotif/files/site.def.177
13 files changed, 19 insertions, 3107 deletions
diff --git a/x11-libs/openmotif/ChangeLog b/x11-libs/openmotif/ChangeLog
index 6873599b9d01..d34df6dd89d1 100644
--- a/x11-libs/openmotif/ChangeLog
+++ b/x11-libs/openmotif/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for x11-libs/openmotif
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/ChangeLog,v 1.143 2007/12/30 16:50:03 betelgeuse Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/ChangeLog,v 1.144 2007/12/30 17:06:32 betelgeuse Exp $
+
+ 30 Dec 2007; Petteri Räty <betelgeuse@gentoo.org>
+ -files/openmotif-2.1.30-CAN-2004-0687-0688.patch,
+ -files/openmotif-2.1.30-CAN-2004-0914_sec8.patch,
+ -files/openmotif-2.1.30-imake-ansi.patch,
+ -files/openmotif-2.1.30-imake-tmpdir.patch,
+ -files/openmotif-2.1.30-uil-bad_grammar_fix.diff,
+ -files/openmotif-2.1.30-xpm.diff, -files/openmotif-2.1.30-xpm2.diff,
+ -files/openmotif-2.2.3-CVE-2005-3964.patch,
+ -files/openmotif-2.2.3-Mwm.defaults, -files/site.def, -files/site.def.1:
+ Clean files.
30 Dec 2007; Petteri Räty <betelgeuse@gentoo.org>
-openmotif-2.1.30-r14.ebuild:
diff --git a/x11-libs/openmotif/Manifest b/x11-libs/openmotif/Manifest
index 360be6d5038e..d29c604ef56f 100644
--- a/x11-libs/openmotif/Manifest
+++ b/x11-libs/openmotif/Manifest
@@ -5,34 +5,6 @@ AUX CAN-2005-0605.patch 1118 RMD160 56a1a4433bb71d54b6d5df33fab68aca74158730 SHA
MD5 b38be118160b49f6b0f9e31d26f01594 files/CAN-2005-0605.patch 1118
RMD160 56a1a4433bb71d54b6d5df33fab68aca74158730 files/CAN-2005-0605.patch 1118
SHA256 20517fc5c4b61419528b658422fdcc9ed972762cffd605a844a4cfd1f628a331 files/CAN-2005-0605.patch 1118
-AUX openmotif-2.1.30-CAN-2004-0687-0688.patch 12932 RMD160 9dfda7de44b875839d22680e5431523b62291059 SHA1 1bfa06fde53ee1634abb00a3c6a7954a05436c19 SHA256 bd2c811affb18375c523bdc39049204a7d12d75922a184bad77a5937e80df1b3
-MD5 e8aae28045bdb3b82472dd90c1f55f99 files/openmotif-2.1.30-CAN-2004-0687-0688.patch 12932
-RMD160 9dfda7de44b875839d22680e5431523b62291059 files/openmotif-2.1.30-CAN-2004-0687-0688.patch 12932
-SHA256 bd2c811affb18375c523bdc39049204a7d12d75922a184bad77a5937e80df1b3 files/openmotif-2.1.30-CAN-2004-0687-0688.patch 12932
-AUX openmotif-2.1.30-CAN-2004-0914_sec8.patch 471 RMD160 a0aabad67c15d11b9cf5464ed855ba7f6338f65d SHA1 9a9f13d2e331a70863356921ed99425aa06e89bc SHA256 e79a59ed3fe6f33d783e675cc4113976625ec8b10b42c580b449a678aa0152fd
-MD5 62870f12ebc148c6319223ec659c290f files/openmotif-2.1.30-CAN-2004-0914_sec8.patch 471
-RMD160 a0aabad67c15d11b9cf5464ed855ba7f6338f65d files/openmotif-2.1.30-CAN-2004-0914_sec8.patch 471
-SHA256 e79a59ed3fe6f33d783e675cc4113976625ec8b10b42c580b449a678aa0152fd files/openmotif-2.1.30-CAN-2004-0914_sec8.patch 471
-AUX openmotif-2.1.30-imake-ansi.patch 6554 RMD160 7c51aebd40221a8aa89ece890629585ac4711945 SHA1 c2ff17e6d8f68b3c84b64c1a996d888011485090 SHA256 43575ce2a79e4ffb47f34b5a76175839c71ca85413a625fcc60adf3617c84d20
-MD5 ed2738dd3cbdc87b0800fe9710092d18 files/openmotif-2.1.30-imake-ansi.patch 6554
-RMD160 7c51aebd40221a8aa89ece890629585ac4711945 files/openmotif-2.1.30-imake-ansi.patch 6554
-SHA256 43575ce2a79e4ffb47f34b5a76175839c71ca85413a625fcc60adf3617c84d20 files/openmotif-2.1.30-imake-ansi.patch 6554
-AUX openmotif-2.1.30-imake-tmpdir.patch 1083 RMD160 2d20d4b4158dc53e1fd77d1265cf0fe5eb8992da SHA1 25981ddc5ed99eb65eeb5ba07eb4210f17d2bf37 SHA256 44bba8c4736e865d9238669f55a6ba3d564a24f853802e7ae07e644de777efa9
-MD5 28350d5dab901ef8cd0dc92e578e3f45 files/openmotif-2.1.30-imake-tmpdir.patch 1083
-RMD160 2d20d4b4158dc53e1fd77d1265cf0fe5eb8992da files/openmotif-2.1.30-imake-tmpdir.patch 1083
-SHA256 44bba8c4736e865d9238669f55a6ba3d564a24f853802e7ae07e644de777efa9 files/openmotif-2.1.30-imake-tmpdir.patch 1083
-AUX openmotif-2.1.30-uil-bad_grammar_fix.diff 832 RMD160 870240d7bf6f9fd03e78ce938c9cb6e97c577917 SHA1 66da3e7039934f8673b13f2328228aad53221678 SHA256 468d79000604b12a24092d1c0ab1190c79682d66715db471b4322c6325140761
-MD5 f586e24ce0a2b3eeea25a82c8ec1d3c4 files/openmotif-2.1.30-uil-bad_grammar_fix.diff 832
-RMD160 870240d7bf6f9fd03e78ce938c9cb6e97c577917 files/openmotif-2.1.30-uil-bad_grammar_fix.diff 832
-SHA256 468d79000604b12a24092d1c0ab1190c79682d66715db471b4322c6325140761 files/openmotif-2.1.30-uil-bad_grammar_fix.diff 832
-AUX openmotif-2.1.30-xpm.diff 13134 RMD160 866179a8dfa6fc4c95d3845c18b47edcb517b224 SHA1 02b34ccfc5acf60e98bab2ea7c55629a48d08e5e SHA256 853a994bc4bc5dacf8d8b3104435361657444a1c791a075abc126d5e844175ad
-MD5 8aaa33844cae66b12fcdce6b58bfe6df files/openmotif-2.1.30-xpm.diff 13134
-RMD160 866179a8dfa6fc4c95d3845c18b47edcb517b224 files/openmotif-2.1.30-xpm.diff 13134
-SHA256 853a994bc4bc5dacf8d8b3104435361657444a1c791a075abc126d5e844175ad files/openmotif-2.1.30-xpm.diff 13134
-AUX openmotif-2.1.30-xpm2.diff 47085 RMD160 eb54e254a92f46064eb06b49b3169c436a7c6d5c SHA1 ace91396743d3528f33229ce3981c43000a88e2a SHA256 3e1548daa09e1eafb2561773cd05c73f70e56d7b85fec111fdac5d5d48f9b7c6
-MD5 ee3a092a933a6393bf14d5d7e6231934 files/openmotif-2.1.30-xpm2.diff 47085
-RMD160 eb54e254a92f46064eb06b49b3169c436a7c6d5c files/openmotif-2.1.30-xpm2.diff 47085
-SHA256 3e1548daa09e1eafb2561773cd05c73f70e56d7b85fec111fdac5d5d48f9b7c6 files/openmotif-2.1.30-xpm2.diff 47085
AUX openmotif-2.2.3-CAN-2004-0687-0688.patch 13114 RMD160 ff21f6f69e008737a445e974e2604b503cb4cbbd SHA1 37df674455734c730d7eae9db630fd8656420d2f SHA256 217db5425a1da21206fe6058f4a3ccf312870c0f7c90678b399f313edddf7545
MD5 97928107920650b7537879c99bf0dcb9 files/openmotif-2.2.3-CAN-2004-0687-0688.patch 13114
RMD160 ff21f6f69e008737a445e974e2604b503cb4cbbd files/openmotif-2.2.3-CAN-2004-0687-0688.patch 13114
@@ -41,14 +13,6 @@ AUX openmotif-2.2.3-CAN-2004-0914_sec8.patch 491 RMD160 e48a0bf2c7576f9c641ad1f3
MD5 db318d4fb05541d70e7e451d46987bd1 files/openmotif-2.2.3-CAN-2004-0914_sec8.patch 491
RMD160 e48a0bf2c7576f9c641ad1f3ef013d4875e5c736 files/openmotif-2.2.3-CAN-2004-0914_sec8.patch 491
SHA256 6a2ea6dc149b31b77716fd23a32ea704e8f67a5287a8ef8e8c55624986193236 files/openmotif-2.2.3-CAN-2004-0914_sec8.patch 491
-AUX openmotif-2.2.3-CVE-2005-3964.patch 1139 RMD160 b1d0daba728a102bcf85d7e0eb81376f5e981781 SHA1 54c14974a2baf7ec9e3763ca6f9d9948a8fdc7f9 SHA256 fb0d27ad2ddc6c7992b0b110ff7590d145f8969ee13bbe46aa22b11189065574
-MD5 307acb8e70d5d1bba7e8035dd043bfbd files/openmotif-2.2.3-CVE-2005-3964.patch 1139
-RMD160 b1d0daba728a102bcf85d7e0eb81376f5e981781 files/openmotif-2.2.3-CVE-2005-3964.patch 1139
-SHA256 fb0d27ad2ddc6c7992b0b110ff7590d145f8969ee13bbe46aa22b11189065574 files/openmotif-2.2.3-CVE-2005-3964.patch 1139
-AUX openmotif-2.2.3-Mwm.defaults 536 RMD160 99fc40c2e923b53a14b2911c37064f2c9cd3f63b SHA1 ddbe7ab7af3a8caf6ccb9d6ab2c721ce5940edd1 SHA256 5373d8c7bd5460ce83bda99f08725fe9154cd4b5ca2b0698e5a0fda10e50f250
-MD5 aaf04376f7011a2f68b7961100f611fb files/openmotif-2.2.3-Mwm.defaults 536
-RMD160 99fc40c2e923b53a14b2911c37064f2c9cd3f63b files/openmotif-2.2.3-Mwm.defaults 536
-SHA256 5373d8c7bd5460ce83bda99f08725fe9154cd4b5ca2b0698e5a0fda10e50f250 files/openmotif-2.2.3-Mwm.defaults 536
AUX openmotif-2.2.3-XmResizeHashTable.patch 183 RMD160 19df6e6eed3b9a90797b38852f43e4e1b244be99 SHA1 20862472fccad7aaa068ffe5be9361ee3a13542e SHA256 23a4d23b21b81aa5eba5da8d999073e87636e60d493ec42f2cae96929dcd9b33
MD5 5f3081ba56f381a6c667c4677258d1c0 files/openmotif-2.2.3-XmResizeHashTable.patch 183
RMD160 19df6e6eed3b9a90797b38852f43e4e1b244be99 files/openmotif-2.2.3-XmResizeHashTable.patch 183
@@ -85,14 +49,6 @@ AUX openmotif-2.2.3-utf8.patch 2979 RMD160 4f362ddd7f4e40233faa4862ef796a1c1a9fe
MD5 214cd8f46dc88caf500e6307658abfbf files/openmotif-2.2.3-utf8.patch 2979
RMD160 4f362ddd7f4e40233faa4862ef796a1c1a9fe7a0 files/openmotif-2.2.3-utf8.patch 2979
SHA256 2a024df6a28baf0b0bc03763ecbee512554199bfcf1cee87c0f91da8d8482dcd files/openmotif-2.2.3-utf8.patch 2979
-AUX site.def 2062 RMD160 3b39238fde89c523ef4a4f1e72c49de5f901de32 SHA1 bf165c09d7b0784788e3c52cc88e7d82a3275b12 SHA256 d1136f63ecd9c9779ff3ba5b9ce062a0580cb713d948f3f992d8ff85091c2770
-MD5 7284e10e14cac30429821b824dd2f722 files/site.def 2062
-RMD160 3b39238fde89c523ef4a4f1e72c49de5f901de32 files/site.def 2062
-SHA256 d1136f63ecd9c9779ff3ba5b9ce062a0580cb713d948f3f992d8ff85091c2770 files/site.def 2062
-AUX site.def.1 2062 RMD160 3b39238fde89c523ef4a4f1e72c49de5f901de32 SHA1 bf165c09d7b0784788e3c52cc88e7d82a3275b12 SHA256 d1136f63ecd9c9779ff3ba5b9ce062a0580cb713d948f3f992d8ff85091c2770
-MD5 7284e10e14cac30429821b824dd2f722 files/site.def.1 2062
-RMD160 3b39238fde89c523ef4a4f1e72c49de5f901de32 files/site.def.1 2062
-SHA256 d1136f63ecd9c9779ff3ba5b9ce062a0580cb713d948f3f992d8ff85091c2770 files/site.def.1 2062
DIST openMotif-2.2.3.tar.gz 5149785 RMD160 b99230d508da57bca72b6920d28fce4187bf5179 SHA1 c463653d9f8e24b35522c3ba6363ddf7a282eab4 SHA256 12fc0d1de53ff30307603e31826db9b63a442f6f743451aed2cb7cedb038d3d9
DIST openmotif-2.2.3-CAN-2004-0914-newer.patch.bz2 11986 RMD160 f04ccc46b82782d53e30c6a08475353ae8a1d4ad SHA1 7b67f9849ab315466fd3942079b2e39df7a05eb0 SHA256 89a44c191d3ffcb09bebc2d2c859560af0c93a56300b502cad77d77801f57cd7
DIST openmotif-2.3.0-manual.pdf.tgz 4195259 RMD160 45b1a17a653b01ccf0324e0bc70fd1ef5db5a395 SHA1 1d0f55928ad65ee321564ba962b1608cfd83bb96 SHA256 49692fd4d5441d2dbb5ca36199b209c8503452fda9b36e929d1aa3673bffaecb
@@ -105,10 +61,10 @@ EBUILD openmotif-2.3.0.ebuild 3330 RMD160 4b754d0759e127dd230b75de8b858dc0aec5f6
MD5 9431e14754aa39dfdd58b820fe83b5da openmotif-2.3.0.ebuild 3330
RMD160 4b754d0759e127dd230b75de8b858dc0aec5f66c openmotif-2.3.0.ebuild 3330
SHA256 91e3108ae350ab41a10ec7e480131e3a61ef977787fa85f7c2df2a2e3bba577e openmotif-2.3.0.ebuild 3330
-MISC ChangeLog 22034 RMD160 572834b6215fdf961037590a4d59da984b5b003f SHA1 91c17f36dc95ae134cc4cf6971b298b585d00b67 SHA256 1823699ba966fd867dc4d8b773454919e04cd0b7b482c1fd8118316e26bf8d5c
-MD5 02a62ccbc6a4b222741bece6e3e8a187 ChangeLog 22034
-RMD160 572834b6215fdf961037590a4d59da984b5b003f ChangeLog 22034
-SHA256 1823699ba966fd867dc4d8b773454919e04cd0b7b482c1fd8118316e26bf8d5c ChangeLog 22034
+MISC ChangeLog 22541 RMD160 3f491c5dd053eb87f5cf5fbcd8d073f851487800 SHA1 36759bccf38fe10c681c676efc0cab09e6596488 SHA256 5c62152b4d4d75652c7c130ee36c854e091d31ec6f06dcce4226b47ef8f0c1e8
+MD5 fd4ee8cb87da06f6bf3ce6ab39d17782 ChangeLog 22541
+RMD160 3f491c5dd053eb87f5cf5fbcd8d073f851487800 ChangeLog 22541
+SHA256 5c62152b4d4d75652c7c130ee36c854e091d31ec6f06dcce4226b47ef8f0c1e8 ChangeLog 22541
MISC metadata.xml 160 RMD160 d86217bb48cf4283e08e43bcaabbc919101ad795 SHA1 d6147d00f16e8cfeef893d0764b0675a93d62849 SHA256 56fca1e06f6dcbe3bc12e7d3962998c7cb79d74f218ce8a17b07771b3e06f49e
MD5 dffd46174e78b327c834fc3e4b1cf848 metadata.xml 160
RMD160 d86217bb48cf4283e08e43bcaabbc919101ad795 metadata.xml 160
@@ -122,7 +78,7 @@ SHA256 d4e170194bf377c3aad980affb3d3fc8d23aeb4b6fc1cebd7c2a74b3ddc951d5 files/di
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
-iD8DBQFHd8y0cxLzpIGCsLQRAgyCAKCH8+dJxF0bMBRyjww3+uhIlgT5agCfZSHy
-CTg7xcEJ4mHMWM0H7V1ioLc=
-=Yl/P
+iD8DBQFHd8+GcxLzpIGCsLQRAnzXAJ9Bi9tGcbgjHWfJI7zP/rSpvmOVVQCfT2G3
+vdaUcPLETEQoQ5mF/KnG+fc=
+=zXkY
-----END PGP SIGNATURE-----
diff --git a/x11-libs/openmotif/files/openmotif-2.1.30-CAN-2004-0687-0688.patch b/x11-libs/openmotif/files/openmotif-2.1.30-CAN-2004-0687-0688.patch
deleted file mode 100644
index effb24834126..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.1.30-CAN-2004-0687-0688.patch
+++ /dev/null
@@ -1,421 +0,0 @@
---- motif/lib/Xm/Xpmhashtab.c.CAN-2004-0687-0688 2000-04-28 17:05:22.000000000 +0200
-+++ motif/lib/Xm/Xpmhashtab.c 2004-10-05 13:37:32.477639974 +0200
-@@ -136,7 +136,7 @@
- xpmHashTable *table;
- {
- xpmHashAtom *atomTable = table->atomTable;
-- int size = table->size;
-+ unsigned int size = table->size;
- xpmHashAtom *t, *p;
- int i;
- int oldSize = size;
-@@ -145,6 +145,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);
-@@ -205,6 +207,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);
---- motif/lib/Xm/XpmWrFFrI.c.CAN-2004-0687-0688 2000-04-28 17:05:22.000000000 +0200
-+++ motif/lib/Xm/XpmWrFFrI.c 2004-10-05 13:37:32.479639699 +0200
-@@ -239,6 +239,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);
---- motif/lib/Xm/Xpmdata.c.CAN-2004-0687-0688 2000-04-28 17:05:21.000000000 +0200
-+++ motif/lib/Xm/Xpmdata.c 2004-10-05 13:37:32.481639425 +0200
-@@ -371,7 +371,7 @@
- {
- if (!mdata->type)
- *cmt = NULL;
-- else if (mdata->CommentLength) {
-+ else if (mdata->CommentLength != 0 && mdata->CommentLength < SIZE_MAX - 1) {
- *cmt = (char *) XpmMalloc(mdata->CommentLength + 1);
- strncpy(*cmt, mdata->Comment, mdata->CommentLength);
- (*cmt)[mdata->CommentLength] = '\0';
---- motif/lib/Xm/XpmI.h.CAN-2004-0687-0688 2004-10-05 13:37:32.253670716 +0200
-+++ motif/lib/Xm/XpmI.h 2004-10-05 13:37:32.483639150 +0200
-@@ -179,6 +179,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;
-@@ -276,9 +288,9 @@
- } *xpmHashAtom;
-
- typedef struct {
-- int size;
-- int limit;
-- int used;
-+ unsigned int size;
-+ unsigned int limit;
-+ unsigned int used;
- xpmHashAtom *atomTable;
- } xpmHashTable;
-
---- motif/lib/Xm/XpmCrDatFrI.c.CAN-2004-0687-0688 2000-04-28 17:05:22.000000000 +0200
-+++ motif/lib/Xm/XpmCrDatFrI.c 2004-10-05 13:37:32.485638876 +0200
-@@ -129,6 +129,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);
---- motif/lib/Xm/Xpmscan.c.CAN-2004-0687-0688 2000-04-28 17:05:21.000000000 +0200
-+++ motif/lib/Xm/Xpmscan.c 2004-10-05 13:37:32.487638601 +0200
-@@ -93,7 +93,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));
-
-@@ -220,11 +221,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);
-@@ -280,6 +287,8 @@
- * color
- */
-
-+ if (pmap.ncolors >= SIZE_MAX / sizeof(XpmColor))
-+ RETURN(XpmNoMemory);
- colorTable = (XpmColor *) XpmCalloc(pmap.ncolors, sizeof(XpmColor));
- if (!colorTable)
- RETURN(XpmNoMemory);
-@@ -327,6 +336,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];
-@@ -374,7 +385,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;
-@@ -418,6 +429,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);
---- motif/lib/Xm/XpmAttrib.c.CAN-2004-0687-0688 2000-04-28 17:05:22.000000000 +0200
-+++ motif/lib/Xm/XpmAttrib.c 2004-10-05 13:37:32.489638327 +0200
-@@ -36,8 +36,8 @@
- #include "XpmI.h"
-
- /* 3.2 backward compatibility code */
--LFUNC(CreateOldColorTable, int, (XpmColor *ct, int ncolors,
-- XpmColor ***oldct));
-+LFUNC(CreateOldColorTable, int, (XpmColor *ct, unsigned int ncolors,
-+ XpmColor ***oldct));
-
- LFUNC(FreeOldColorTable, void, (XpmColor **colorTable, int ncolors));
-
-@@ -47,12 +47,15 @@
- 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) {
- *oldct = NULL;
---- motif/lib/Xm/Xpmcreate.c.CAN-2004-0687-0688 2000-04-28 17:05:21.000000000 +0200
-+++ motif/lib/Xm/Xpmcreate.c 2004-10-05 13:37:32.493637778 +0200
-@@ -799,6 +799,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)
-@@ -942,6 +945,8 @@
- return (XpmNoMemory);
-
- #ifndef FOR_MSW
-+ 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);
-@@ -1987,6 +1992,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);
-@@ -2200,6 +2208,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;
-@@ -2298,6 +2309,9 @@
- char *s;
- char buf[BUFSIZ];
-
-+ if (cpp >= sizeof(buf))
-+ return (XpmFileInvalid);
-+
- buf[cpp] = '\0';
- if (USE_HASHTABLE) {
- xpmHashAtom *slot;
---- motif/lib/Xm/Xpmparse.c.CAN-2004-0687-0688 2000-04-28 17:05:21.000000000 +0200
-+++ motif/lib/Xm/Xpmparse.c 2004-10-05 13:37:32.495637503 +0200
-@@ -41,6 +41,25 @@
-
- #include "XpmI.h"
- #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,
-@@ -209,7 +228,7 @@
- unsigned int *extensions;
- {
- unsigned int l;
-- char buf[BUFSIZ];
-+ char buf[BUFSIZ + 1];
-
- if (!data->format) { /* XPM 2 or 3 */
-
-@@ -318,10 +337,10 @@
- XpmColor **colorTablePtr;
- xpmHashTable *hashtable;
- {
-- unsigned int key, l, a, b;
-+ unsigned int key, 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;
-@@ -329,6 +348,8 @@
- char **defaults;
- int ErrorStatus;
-
-+ if (ncolors >= SIZE_MAX / sizeof(XpmColor))
-+ return (XpmNoMemory);
- colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor));
- if (!colorTable)
- return (XpmNoMemory);
-@@ -340,6 +361,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);
-@@ -377,13 +402,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 */
-@@ -394,9 +420,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;
- }
- }
-@@ -404,12 +430,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 */
-@@ -422,6 +449,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);
-@@ -450,16 +481,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)
-@@ -484,6 +516,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
-@@ -507,6 +542,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;
-@@ -584,6 +622,9 @@
- char *s;
- char buf[BUFSIZ];
-
-+ if (cpp >= sizeof(buf))
-+ return (XpmFileInvalid);
-+
- buf[cpp] = '\0';
- if (USE_HASHTABLE) {
- xpmHashAtom *slot;
diff --git a/x11-libs/openmotif/files/openmotif-2.1.30-CAN-2004-0914_sec8.patch b/x11-libs/openmotif/files/openmotif-2.1.30-CAN-2004-0914_sec8.patch
deleted file mode 100644
index bf95bf1fd2ea..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.1.30-CAN-2004-0914_sec8.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- motif/lib/Xm/XpmWrFFrI.c.CAN-2004-0914_sec8 2004-11-29 14:56:12.848706139 +0100
-+++ motif/lib/Xm/XpmWrFFrI.c 2004-11-29 14:56:12.872702854 +0100
-@@ -317,10 +317,7 @@
- #ifndef NO_ZPIPE
- size_t len = strlen(filename);
-
-- if(len == 0 ||
-- filename[0] == '/' ||
-- strstr(filename, "../") != NULL ||
-- filename[len-1] == '/')
-+ if(len == 0)
- return(XpmOpenFailed);
-
- if (len > 2 && !strcmp(".Z", filename + (len - 2))) {
diff --git a/x11-libs/openmotif/files/openmotif-2.1.30-imake-ansi.patch b/x11-libs/openmotif/files/openmotif-2.1.30-imake-ansi.patch
deleted file mode 100644
index dffee1f9e1c0..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.1.30-imake-ansi.patch
+++ /dev/null
@@ -1,304 +0,0 @@
---- motif/config/cf/Imake.cf 2000-06-03 22:49:34.000000000 +0000
-+++ motif/config/cf/Imake.cf.new 2004-01-19 01:10:14.000000000 +0000
-@@ -53,10 +70,19 @@
- # define MacroIncludeFile <bsdi.cf>
- # define MacroFile bsdi.cf
- # undef bsdi
--# define BSD386Architecture
--# define i386BsdArchitecture
--# define i386Architecture
--# undef i386
-+# define BSDOSArchitecture
-+# if defined(__i386__) || defined(i386)
-+# define i386BsdArchitecture
-+# define i386Architecture
-+# undef i386
-+# undef __i386__
-+# endif
-+# if defined(__sparc__) || defined(__sparc_v9__) || defined(sparc)
-+# define SparcArchitecture
-+# undef sparc
-+# undef __sparc__
-+# undef __sparc_v9__
-+# endif
- #endif /* bsdi */
-
- #ifdef __OpenBSD__
-@@ -114,6 +140,10 @@
- # endif
- # undef mc68000
- # endif
-+# ifdef __powerpc__
-+# define PpcArchitecture
-+# undef __powerpc__
-+# endif
- #endif /* OpenBSD */
-
- #ifdef __NetBSD__
-@@ -141,13 +171,19 @@
- # endif
- # ifdef mc68000
- # define Mc68020Architecture
--# undef mc68000
- # endif
--# if defined(arm32) || defined(__arm32__)
-+# ifdef __arm32__
- # define Arm32Architecture
--# undef arm32
- # undef __arm32__
- # endif
-+# ifdef __vax__
-+# define VaxArchitecture
-+# undef __vax__
-+# endif
-+# ifdef __powerpc__
-+# define PpcArchitecture
-+# undef __powerpc__
-+# endif
- #endif /* NetBSD */
-
- #ifdef __FreeBSD__
-@@ -160,6 +196,11 @@
- # define i386Architecture
- # undef i386
- # endif
-+# ifdef __alpha__
-+# define AlphaBsdArchitecture
-+# define AlphaArchitecture
-+# undef __alpha__
-+# endif
- #endif /* __FreeBSD__ */
-
- #ifdef AMOEBA
-@@ -325,6 +366,7 @@
- # undef sgi
- # define SGIArchitecture
- # undef mips
-+# undef __mips
- # define MipsArchitecture
- # ifdef _SVR4
- # undef _SVR4
-@@ -553,44 +595,158 @@
- # undef linux
- # define LinuxArchitecture
- # ifdef i386
--# define i386Architecture
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
- # undef i386
--# endif /* i386 */
-+XCOMM Keep cpp from replacing path elements containing i486/i586/i686
-+# ifdef i486
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef i486
-+# endif
-+# ifdef i586
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef i586
-+# endif
-+# ifdef i686
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef i686
-+# endif
-+# ifdef k6
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef k6
-+# endif
-+# endif /* k6 */
- # ifdef __i386__
- # ifndef i386Architecture
- # define i386Architecture
- # endif
- # undef __i386__
- # endif /* __i386__ */
-+# ifdef __i486__
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __i486__
-+# endif /* __i486__ */
-+# ifdef __i586__
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __i586__
-+# endif /* __i586__ */
-+# ifdef __i686__
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __i686__
-+# endif /* __i686__ */
-+# ifdef __k6__
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __k6__
-+# endif /* __k6__ */
-+# ifdef __i386
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __i386
-+# endif /* __i386 */
-+# ifdef __i486
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __i486
-+# endif /* __i486 */
-+# ifdef __i586
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __i586
-+# endif /* __i586 */
-+# ifdef __i686
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __i686
-+# endif /* __i686 */
-+# ifdef __k6
-+# ifndef i386Architecture
-+# define i386Architecture
-+# endif
-+# undef __k6
-+# endif /* __k6 */
-+# ifdef __s390__
-+# define s390Architecture
-+# undef __s390__
-+# endif /* s390 */
- # ifdef __alpha
- # define AlphaArchitecture
- # undef __alpha
- # endif /* __alpha */
- # ifdef __alpha__
--# define AlphaArchitecture
-+# ifndef AlphaArchitecture
-+# define AlphaArchitecture
-+# endif
- # undef __alpha__
- # endif /* __alpha__ */
-+# ifdef __arm__
-+# define Arm32Architecture
-+# undef arm
-+# undef __arm
-+# undef __arm__
-+# endif
- # ifdef mc68000
- # define Mc68020Architecture
- # undef mc68000
- # endif /* mc68000 */
- # ifdef powerpc
--# define PowerPCArchitecture
-+# define PpcArchitecture
- # undef powerpc
- # endif
--# if defined(arm) || defined(__arm__)
--# define ArmArchitecture
--# undef arm
--# undef __arm__
--# if defined(__ARM_ARCH_4__)
--# define Arm4Architecture
--# define Arm32Architecture
--# undef __ARM_ARCH_4__
--# endif
--# if defined(__ARM_ARCH_3__)
--# define Arm3Architecture
--# undef __ARM_ARCH_3__
--# endif
-+# ifdef __powerpc__
-+# ifndef PpcArchitecture
-+# define PpcArchitecture
-+# endif
-+# undef __powerpc__
-+# endif
-+# ifdef sparc
-+# define SparcArchitecture
-+# undef sparc
-+# endif
-+# ifdef __sparc__
-+# ifndef SparcArchitecture
-+# define SparcArchitecture
-+# endif
-+# undef __sparc__
-+# endif
-+# ifdef ia64
-+# define ia64Architecture
-+# undef ia64
-+# endif
-+# ifdef __ia64__
-+# ifndef ia64Architecture
-+# define ia64Architecture
-+# endif
-+# undef __ia64__
-+# endif
-+# if defined(mips) || defined(__mips__)
-+# define MipsArchitecture
-+# undef mips
-+# undef __mips__
-+# endif
-+XCOMM for compatibility with 3.3.x
-+# ifdef PpcArchitecture
-+# define PowerPCArchitecture
- # endif
- #endif /* linux */
-
-@@ -608,7 +764,7 @@
- # undef __x86__
- # endif
- # ifdef __powerpc__
--# define ppcArchitecture
-+# define PpcArchitecture
- # undef __powerpc__
- # endif
- # if defined(sparc) || defined(__sparc__)
-@@ -616,6 +772,10 @@
- # undef sparc
- # undef __sparc__
- # endif
-+/* for compatibility with 3.3.x */
-+# ifdef PpcArchitecture
-+# define PowerPCArchitecture
-+# endif
- #endif /* LynxOS AT/PPC/microSPARC */
-
- #ifdef __uxp__
-@@ -687,6 +847,14 @@
- #undef i386
- #endif /* MACH */
-
-+/* On NetBSD, `unix' is not defined, and cpp emits a warning every time
-+ * it sees a test using the `unix' symbol */
-+#if !defined(NetBSDArchitecture) || (defined(NetBSDArchitecture) && DefaultOSMajorVersion == 1 && DefaultOSMinorVersion <= 3)
-+#ifdef unix
-+#undef unix
-+#endif
-+#endif
-+
- #ifdef emxos2
- #define MacroIncludeFile <os2.cf>
- #define MacroFile os2.cf
-@@ -721,6 +889,12 @@
- #endif
- #endif /* QNX/Neutrino */
-
-+#ifdef SparcArchitecture
-+# if defined(__sparc_v9) || defined(__arch64__)
-+# define Sparc64Architecture
-+# endif
-+#endif
-+
- #ifndef MacroIncludeFile
- XCOMM WARNING: Imake.cf not configured; guessing at definitions!!!
- XCOMM This might mean that BOOTSTRAPCFLAGS was not set when building imake.
diff --git a/x11-libs/openmotif/files/openmotif-2.1.30-imake-tmpdir.patch b/x11-libs/openmotif/files/openmotif-2.1.30-imake-tmpdir.patch
deleted file mode 100644
index b1b2804ab394..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.1.30-imake-tmpdir.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- config/imake/imake.c~ 2000-06-04 00:34:05.000000000 +0200
-+++ config/imake/imake.c 2003-09-17 03:41:46.000000000 +0200
-@@ -961,23 +961,38 @@
- static void get_libc_version(inFile)
- FILE* inFile;
- {
-- char *aout = tmpnam (NULL);
-+ char aout[PATH_MAX];
- FILE *fp;
- const char *format = "%s -o %s -x c -";
- char *cc;
- int len;
- char *command;
-+ char *tmpdir;
-+ int tmpfd;
-+
-+ if((tmpdir = getenv("TMPDIR")) != NULL && strlen(tmpdir) < (PATH_MAX-13))
-+ strcpy(aout, tmpdir);
-+ else
-+ strcpy(aout, "/tmp");
-+ strcat(aout, "/imakeXXXXXX");
-+
-+ if((tmpfd = mkstemp(aout)) == -1) {
-+ perror("mkstemp");
-+ abort();
-+ }
-
- cc = getenv ("CC");
- if (cc == NULL)
- cc = "gcc";
- len = strlen (aout) + strlen (format) + strlen (cc);
- if (len < 128) len = 128;
-- command = alloca (len);
-+ if((command = alloca (len)) == NULL)
-+ abort();
-
- if (snprintf (command , len, format, cc, aout) == len)
- abort ();
-
-+ close(tmpfd);
- fp = popen (command, "w");
- if (fp == NULL || fprintf (fp, "%s\n", libc_c) < 0
- || pclose (fp) != 0)
diff --git a/x11-libs/openmotif/files/openmotif-2.1.30-uil-bad_grammar_fix.diff b/x11-libs/openmotif/files/openmotif-2.1.30-uil-bad_grammar_fix.diff
deleted file mode 100644
index 19568a8c9cc0..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.1.30-uil-bad_grammar_fix.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- motif/tools/wml/Uil.y.orig Wed May 10 16:02:41 2000
-+++ motif/tools/wml/Uil.y Fri Feb 6 14:45:08 2004
-@@ -397,7 +397,7 @@
- | FONTSET { $$ = $1; $$.b_type = sym_k_fontset_value; }
- | WIDGET { $$ = $1; $$.b_type = sym_k_widget_ref_value; }
- /* End for fixing CR 5888 */
--
-+ ;
- string_table_type
- : STRING_TABLE
- | COMPOUND_STRING_TABLE
-@@ -1049,7 +1049,7 @@
- sar_private_error( &$$ );
- }
- }
-- ;
-+
- | value { $$ = $1;
- if ($$.b_type != sym_k_error_value)
- {
-@@ -1058,12 +1058,12 @@
- sar_private_error( &$$ );
- }
- }
--
-+ ;
- non_export_value
- : COLOR_TABLE LEFT_PAREN color_list RIGHT_PAREN { sar_make_color_table( &$$, &$3, &$1); }
-
- /* END HaL fix CR 5427 */
--
-+ ;
-
- value
- : value_1
diff --git a/x11-libs/openmotif/files/openmotif-2.1.30-xpm.diff b/x11-libs/openmotif/files/openmotif-2.1.30-xpm.diff
deleted file mode 100644
index c38acd698fd4..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.1.30-xpm.diff
+++ /dev/null
@@ -1,440 +0,0 @@
---- motif/lib/Xm/Xpmscan.c.XPM 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/Xpmscan.c 2005-01-17 14:51:37.000000000 +0100
-@@ -93,7 +93,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));
-
-@@ -220,11 +221,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);
-@@ -279,7 +286,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);
-@@ -327,6 +335,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];
-@@ -374,7 +384,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;
-@@ -418,6 +428,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);
---- motif/lib/Xm/XpmWrFFrI.c.XPM 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/XpmWrFFrI.c 2005-01-17 14:51:37.000000000 +0100
-@@ -239,6 +239,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);
---- motif/lib/Xm/Xpmhashtab.c.XPM 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/Xpmhashtab.c 2005-01-17 14:51:37.000000000 +0100
-@@ -136,7 +136,7 @@
- xpmHashTable *table;
- {
- xpmHashAtom *atomTable = table->atomTable;
-- int size = table->size;
-+ unsigned int size = table->size;
- xpmHashAtom *t, *p;
- int i;
- int oldSize = size;
-@@ -145,6 +145,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);
-@@ -205,6 +207,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);
---- motif/lib/Xm/XpmCrDatFrI.c.XPM 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/XpmCrDatFrI.c 2005-01-17 14:51:37.000000000 +0100
-@@ -129,6 +129,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);
---- motif/lib/Xm/XpmI.h.XPM 2000-06-04 21:47:23.000000000 +0200
-+++ motif/lib/Xm/XpmI.h 2005-01-17 14:51:37.000000000 +0100
-@@ -179,6 +179,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;
-@@ -276,9 +288,9 @@
- } *xpmHashAtom;
-
- typedef struct {
-- int size;
-- int limit;
-- int used;
-+ unsigned int size;
-+ unsigned int limit;
-+ unsigned int used;
- xpmHashAtom *atomTable;
- } xpmHashTable;
-
---- motif/lib/Xm/Xpmcreate.c.XPM 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/Xpmcreate.c 2005-01-17 14:51:37.000000000 +0100
-@@ -799,6 +799,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)
-@@ -942,6 +945,8 @@
- return (XpmNoMemory);
-
- #ifndef FOR_MSW
-+ 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);
-@@ -1987,6 +1992,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);
-@@ -2200,6 +2208,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;
-@@ -2242,6 +2253,9 @@
- unsigned short *cidx[256];
- int char1;
-
-+ if (ncolors > 256)
-+ return (XpmFileInvalid);
-+
- bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */
- for (a = 0; a < ncolors; a++) {
- char1 = colorTable[a].string[0];
-@@ -2298,6 +2312,9 @@
- char *s;
- char buf[BUFSIZ];
-
-+ if (cpp >= sizeof(buf))
-+ return (XpmFileInvalid);
-+
- buf[cpp] = '\0';
- if (USE_HASHTABLE) {
- xpmHashAtom *slot;
---- motif/lib/Xm/XpmAttrib.c.XPM 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/XpmAttrib.c 2005-01-17 14:51:37.000000000 +0100
-@@ -36,7 +36,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));
-@@ -47,12 +47,15 @@
- 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) {
- *oldct = NULL;
---- motif/lib/Xm/Imakefile.XPM 2000-06-02 17:55:19.000000000 +0200
-+++ motif/lib/Xm/Imakefile 2005-01-17 14:51:37.000000000 +0100
-@@ -72,7 +72,7 @@
-
- LINTLIBS = $(LINTXLIB) $(LINTXTOOL)
-
-- DEFINES = XmDefines StrcasecmpDefines
-+ DEFINES = XmDefines StrcasecmpDefines $(STRLCATDEF)
- SRCH_DEFINES = -DLIBDIR=\"$(XPROJECTROOT)/lib/X11\" -DINCDIR=\"$(XPROJECTROOT)/include/X11\"
- BINDINGS_DEF = -DXMBINDDIR_FALLBACK=\"VirtualBindingsPath\"
- STRINGSABIOPTIONS = ToolkitStringsABIOptions
-@@ -258,6 +258,10 @@
- UNSHAREDOBJS = XmStrDefs.o sharedlib.o
- #endif
-
-+#if HasStrlcat
-+STRLCATDEF = -DHAS_STRLCAT
-+#endif
-+
- #define LibTookitMakeStringsDependency YES
- #include <Library.tmpl>
-
---- motif/lib/Xm/Xpmparse.c.XPM 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/Xpmparse.c 2005-01-17 14:51:37.000000000 +0100
-@@ -42,6 +42,24 @@
- #include "XpmI.h"
- #include <ctype.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,
-@@ -209,7 +227,7 @@
- unsigned int *extensions;
- {
- unsigned int l;
-- char buf[BUFSIZ];
-+ char buf[BUFSIZ + 1];
-
- if (!data->format) { /* XPM 2 or 3 */
-
-@@ -318,10 +336,10 @@
- XpmColor **colorTablePtr;
- xpmHashTable *hashtable;
- {
-- unsigned int key, 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;
-@@ -329,6 +347,8 @@
- char **defaults;
- int ErrorStatus;
-
-+ if (ncolors >= SIZE_MAX / sizeof(XpmColor))
-+ return (XpmNoMemory);
- colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor));
- if (!colorTable)
- return (XpmNoMemory);
-@@ -340,6 +360,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);
-@@ -377,13 +401,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 */
-@@ -394,9 +419,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;
- }
- }
-@@ -404,12 +429,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 */
-@@ -422,6 +448,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);
-@@ -450,16 +480,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)
-@@ -484,6 +515,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
-@@ -507,6 +541,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;
-@@ -584,6 +621,9 @@
- char *s;
- char buf[BUFSIZ];
-
-+ if (cpp >= sizeof(buf))
-+ return (XpmFileInvalid);
-+
- buf[cpp] = '\0';
- if (USE_HASHTABLE) {
- xpmHashAtom *slot;
diff --git a/x11-libs/openmotif/files/openmotif-2.1.30-xpm2.diff b/x11-libs/openmotif/files/openmotif-2.1.30-xpm2.diff
deleted file mode 100644
index 1876ad76f126..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.1.30-xpm2.diff
+++ /dev/null
@@ -1,1601 +0,0 @@
-diff -r -u motif.0194/lib/Xm/Imakefile motif/lib/Xm/Imakefile
---- motif.0194/lib/Xm/Imakefile 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/Imakefile 2005-01-18 19:34:41.789393240 +0100
-@@ -169,7 +169,7 @@
- XpmCrBufFrP.c XpmCrPFrBuf.c XpmRdFToDat.c XpmWrFFrP.c Xpmrgb.c \
- XpmCrDatFrI.c XpmCrPFrDat.c XpmRdFToI.c Xpmcreate.c Xpmscan.c \
- XpmCrDatFrP.c XpmCrPFrI.c XpmRdFToP.c Xpmdata.c \
-- XpmCrIFrBuf.c XpmImage.c XpmWrFFrBuf.c Xpmhashtab.c
-+ XpmCrIFrBuf.c XpmImage.c XpmWrFFrBuf.c Xpmhashtab.c s_popen.c
-
- #if UseLocalRegex
- REGEX_SRCS = regexp.c
-@@ -232,7 +232,7 @@
- XpmCrBufFrP.o XpmCrPFrBuf.o XpmRdFToDat.o XpmWrFFrP.o Xpmrgb.o \
- XpmCrDatFrI.o XpmCrPFrDat.o XpmRdFToI.o Xpmcreate.o Xpmscan.o \
- XpmCrDatFrP.o XpmCrPFrI.o XpmRdFToP.o Xpmdata.o \
-- XpmCrIFrBuf.o XpmImage.o XpmWrFFrBuf.o Xpmhashtab.o
-+ XpmCrIFrBuf.o XpmImage.o XpmWrFFrBuf.o Xpmhashtab.o s_popen.o
-
- #if UseLocalRegex
- REGEX_OBJS = regexp.o
-diff -r -u motif.0194/lib/Xm/XpmAttrib.c motif/lib/Xm/XpmAttrib.c
---- motif.0194/lib/Xm/XpmAttrib.c 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/XpmAttrib.c 2005-01-18 19:26:30.705049408 +0100
-@@ -33,13 +33,15 @@
- * Developed by Arnaud Le Hors *
- \*****************************************************************************/
-
-+/* October 2004, source code review by Thomas Biege <thomas@suse.de> */
-+
- #include "XpmI.h"
-
- /* 3.2 backward compatibility code */
- LFUNC(CreateOldColorTable, int, (XpmColor *ct, unsigned int ncolors,
- XpmColor ***oldct));
-
--LFUNC(FreeOldColorTable, void, (XpmColor **colorTable, int ncolors));
-+LFUNC(FreeOldColorTable, void, (XpmColor **colorTable, unsigned int ncolors));
-
- /*
- * Create a colortable compatible with the old style colortable
-@@ -51,9 +53,9 @@
- XpmColor ***oldct;
- {
- XpmColor **colorTable, **color;
-- int a;
-+ unsigned int a;
-
-- if (ncolors >= SIZE_MAX / sizeof(XpmColor *))
-+ if (ncolors >= UINT_MAX / sizeof(XpmColor *))
- return XpmNoMemory;
-
- colorTable = (XpmColor **) XpmMalloc(ncolors * sizeof(XpmColor *));
-@@ -70,9 +72,9 @@
- static void
- FreeOldColorTable(colorTable, ncolors)
- XpmColor **colorTable;
-- int ncolors;
-+ unsigned int ncolors;
- {
-- int a, b;
-+ unsigned int a, b;
- XpmColor **color;
- char **sptr;
-
-@@ -123,7 +125,7 @@
- XpmExtension *ext;
- char **sptr;
-
-- if (extensions) {
-+ if (extensions && nextensions > 0) {
- for (i = 0, ext = extensions; i < nextensions; i++, ext++) {
- if (ext->name)
- XpmFree(ext->name);
-diff -r -u motif.0194/lib/Xm/XpmCrBufFrI.c motif/lib/Xm/XpmCrBufFrI.c
---- motif.0194/lib/Xm/XpmCrBufFrI.c 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/XpmCrBufFrI.c 2005-01-18 19:26:30.706049256 +0100
-@@ -42,15 +42,17 @@
- unsigned int *used_size, XpmColor *colors,
- unsigned int ncolors, unsigned int cpp));
-
--LFUNC(WritePixels, void, (char *dataptr, unsigned int *used_size,
-+LFUNC(WritePixels, void, (char *dataptr, unsigned int data_size,
-+ unsigned int *used_size,
- unsigned int width, unsigned int height,
- unsigned int cpp, unsigned int *pixels,
- XpmColor *colors));
-
--LFUNC(WriteExtensions, void, (char *dataptr, unsigned int *used_size,
-+LFUNC(WriteExtensions, void, (char *dataptr, unsigned int data_size,
-+ unsigned int *used_size,
- XpmExtension *ext, unsigned int num));
-
--LFUNC(ExtensionsSize, int, (XpmExtension *ext, unsigned int num));
-+LFUNC(ExtensionsSize, unsigned int, (XpmExtension *ext, unsigned int num));
- LFUNC(CommentsSize, int, (XpmInfo *info));
-
- int
-@@ -93,11 +95,11 @@
-
- #undef RETURN
- #define RETURN(status) \
--{ \
-+do { \
- if (ptr) \
- XpmFree(ptr); \
- return(status); \
--}
-+} while(0)
-
- int
- XpmCreateBufferFromXpmImage(buffer_return, image, info)
-@@ -111,7 +113,7 @@
- unsigned int cmts, extensions, ext_size = 0;
- unsigned int l, cmt_size = 0;
- char *ptr = NULL, *p;
-- unsigned int ptr_size, used_size;
-+ unsigned int ptr_size, used_size, tmp;
-
- *buffer_return = NULL;
-
-@@ -133,7 +135,13 @@
- #ifdef VOID_SPRINTF
- used_size = strlen(buf);
- #endif
-- ptr_size = used_size + ext_size + cmt_size + 1;
-+ ptr_size = used_size + ext_size + cmt_size + 1; /* ptr_size can't be 0 */
-+ if(ptr_size <= used_size ||
-+ ptr_size <= ext_size ||
-+ ptr_size <= cmt_size)
-+ {
-+ return XpmNoMemory;
-+ }
- ptr = (char *) XpmMalloc(ptr_size);
- if (!ptr)
- return XpmNoMemory;
-@@ -144,7 +152,7 @@
- #ifndef VOID_SPRINTF
- used_size +=
- #endif
-- sprintf(ptr + used_size, "/*%s*/\n", info->hints_cmt);
-+ snprintf(ptr + used_size, ptr_size-used_size, "/*%s*/\n", info->hints_cmt);
- #ifdef VOID_SPRINTF
- used_size += strlen(info->hints_cmt) + 5;
- #endif
-@@ -162,7 +170,7 @@
- #ifndef VOID_SPRINTF
- l +=
- #endif
-- sprintf(buf + l, " %d %d", info->x_hotspot, info->y_hotspot);
-+ snprintf(buf + l, sizeof(buf)-l, " %d %d", info->x_hotspot, info->y_hotspot);
- #ifdef VOID_SPRINTF
- l = strlen(buf);
- #endif
-@@ -184,6 +192,8 @@
- l = strlen(buf);
- #endif
- ptr_size += l;
-+ if(ptr_size <= l)
-+ RETURN(XpmNoMemory);
- p = (char *) XpmRealloc(ptr, ptr_size);
- if (!p)
- RETURN(XpmNoMemory);
-@@ -196,7 +206,7 @@
- #ifndef VOID_SPRINTF
- used_size +=
- #endif
-- sprintf(ptr + used_size, "/*%s*/\n", info->colors_cmt);
-+ snprintf(ptr + used_size, ptr_size-used_size, "/*%s*/\n", info->colors_cmt);
- #ifdef VOID_SPRINTF
- used_size += strlen(info->colors_cmt) + 5;
- #endif
-@@ -212,7 +222,12 @@
- * 4 = 1 (for '"') + 3 (for '",\n')
- * 1 = - 2 (because the last line does not end with ',\n') + 3 (for '};\n')
- */
-- ptr_size += image->height * (image->width * image->cpp + 4) + 1;
-+ if(image->width > UINT_MAX / image->cpp ||
-+ (tmp = image->width * image->cpp + 4) <= 4 ||
-+ image->height > UINT_MAX / tmp ||
-+ (tmp = image->height * tmp + 1) <= 1 ||
-+ (ptr_size += tmp) <= tmp)
-+ RETURN(XpmNoMemory);
-
- p = (char *) XpmRealloc(ptr, ptr_size);
- if (!p)
-@@ -224,17 +239,17 @@
- #ifndef VOID_SPRINTF
- used_size +=
- #endif
-- sprintf(ptr + used_size, "/*%s*/\n", info->pixels_cmt);
-+ snprintf(ptr + used_size, ptr_size-used_size, "/*%s*/\n", info->pixels_cmt);
- #ifdef VOID_SPRINTF
- used_size += strlen(info->pixels_cmt) + 5;
- #endif
- }
-- WritePixels(ptr + used_size, &used_size, image->width, image->height,
-+ WritePixels(ptr + used_size, ptr_size - used_size, &used_size, image->width, image->height,
- image->cpp, image->data, image->colorTable);
-
- /* print extensions */
- if (extensions)
-- WriteExtensions(ptr + used_size, &used_size,
-+ WriteExtensions(ptr + used_size, ptr_size-used_size, &used_size,
- info->extensions, info->nextensions);
-
- /* close the array */
-@@ -245,6 +260,7 @@
- return (XpmSuccess);
- }
-
-+
- static int
- WriteColors(dataptr, data_size, used_size, colors, ncolors, cpp)
- char **dataptr;
-@@ -254,7 +270,7 @@
- unsigned int ncolors;
- unsigned int cpp;
- {
-- char buf[BUFSIZ];
-+ char buf[BUFSIZ] = {0};
- unsigned int a, key, l;
- char *s, *s2;
- char **defaults;
-@@ -264,6 +280,8 @@
-
- defaults = (char **) colors;
- s = buf + 1;
-+ if(cpp > (sizeof(buf) - (s-buf)))
-+ return(XpmNoMemory);
- strncpy(s, *defaults++, cpp);
- s += cpp;
-
-@@ -272,14 +290,24 @@
- #ifndef VOID_SPRINTF
- s +=
- #endif
-- sprintf(s, "\t%s %s", xpmColorKeys[key - 1], s2);
-+ /* assume C99 compliance */
-+ snprintf(s, sizeof(buf) - (s-buf), "\t%s %s", xpmColorKeys[key - 1], s2);
- #ifdef VOID_SPRINTF
- s += strlen(s);
- #endif
-+ /* now let's check if s points out-of-bounds */
-+ if((s-buf) > sizeof(buf))
-+ return(XpmNoMemory);
- }
- }
-+ if(sizeof(buf) - (s-buf) < 4)
-+ return(XpmNoMemory);
- strcpy(s, "\",\n");
- l = s + 3 - buf;
-+ if( *data_size >= UINT_MAX-l ||
-+ *data_size + l <= *used_size ||
-+ (*data_size + l - *used_size) <= sizeof(buf))
-+ return(XpmNoMemory);
- s = (char *) XpmRealloc(*dataptr, *data_size + l);
- if (!s)
- return (XpmNoMemory);
-@@ -292,8 +320,9 @@
- }
-
- static void
--WritePixels(dataptr, used_size, width, height, cpp, pixels, colors)
-+WritePixels(dataptr, data_size, used_size, width, height, cpp, pixels, colors)
- char *dataptr;
-+ unsigned int data_size;
- unsigned int *used_size;
- unsigned int width;
- unsigned int height;
-@@ -304,27 +333,36 @@
- char *s = dataptr;
- unsigned int x, y, h;
-
-+ if(height <= 1)
-+ return;
-+
- h = height - 1;
- for (y = 0; y < h; y++) {
- *s++ = '"';
- for (x = 0; x < width; x++, pixels++) {
-- strncpy(s, colors[*pixels].string, cpp);
-+ if(cpp >= (data_size - (s-dataptr)))
-+ return;
-+ strncpy(s, colors[*pixels].string, cpp); /* how can we trust *pixels? :-\ */
- s += cpp;
- }
-+ if((data_size - (s-dataptr)) < 4)
-+ return;
- strcpy(s, "\",\n");
- s += 3;
- }
- /* duplicate some code to avoid a test in the loop */
- *s++ = '"';
- for (x = 0; x < width; x++, pixels++) {
-- strncpy(s, colors[*pixels].string, cpp);
-+ if(cpp >= (data_size - (s-dataptr)))
-+ return;
-+ strncpy(s, colors[*pixels].string, cpp); /* how can we trust *pixels? */
- s += cpp;
- }
- *s++ = '"';
- *used_size += s - dataptr;
- }
-
--static int
-+static unsigned int
- ExtensionsSize(ext, num)
- XpmExtension *ext;
- unsigned int num;
-@@ -333,21 +371,26 @@
- char **line;
-
- size = 0;
-+ if(num == 0)
-+ return(0); /* ok? */
- for (x = 0; x < num; x++, ext++) {
- /* 11 = 10 (for ',\n"XPMEXT ') + 1 (for '"') */
- size += strlen(ext->name) + 11;
-- a = ext->nlines;
-+ a = ext->nlines; /* how can we trust ext->nlines to be not out-of-bounds? */
- for (y = 0, line = ext->lines; y < a; y++, line++)
- /* 4 = 3 (for ',\n"') + 1 (for '"') */
- size += strlen(*line) + 4;
- }
- /* 13 is for ',\n"XPMENDEXT"' */
-+ if(size > UINT_MAX - 13) /* unlikely */
-+ return(0);
- return size + 13;
- }
-
- static void
--WriteExtensions(dataptr, used_size, ext, num)
-+WriteExtensions(dataptr, data_size, used_size, ext, num)
- char *dataptr;
-+ unsigned int data_size;
- unsigned int *used_size;
- XpmExtension *ext;
- unsigned int num;
-@@ -360,7 +403,7 @@
- #ifndef VOID_SPRINTF
- s += 11 +
- #endif
-- sprintf(s, ",\n\"XPMEXT %s\"", ext->name);
-+ snprintf(s, data_size - (s-dataptr), ",\n\"XPMEXT %s\"", ext->name);
- #ifdef VOID_SPRINTF
- s += strlen(ext->name) + 11;
- #endif
-@@ -369,13 +412,13 @@
- #ifndef VOID_SPRINTF
- s += 4 +
- #endif
-- sprintf(s, ",\n\"%s\"", *line);
-+ snprintf(s, data_size - (s-dataptr), ",\n\"%s\"", *line);
- #ifdef VOID_SPRINTF
- s += strlen(*line) + 4;
- #endif
- }
- }
-- strcpy(s, ",\n\"XPMENDEXT\"");
-+ strncpy(s, ",\n\"XPMENDEXT\"", data_size - (s-dataptr)-1);
- *used_size += s - dataptr + 13;
- }
-
-@@ -386,6 +429,7 @@
- int size = 0;
-
- /* 5 = 2 (for "/_*") + 3 (for "*_/\n") */
-+ /* wrap possible but *very* unlikely */
- if (info->hints_cmt)
- size += 5 + strlen(info->hints_cmt);
-
-diff -r -u motif.0194/lib/Xm/XpmCrDatFrI.c motif/lib/Xm/XpmCrDatFrI.c
---- motif.0194/lib/Xm/XpmCrDatFrI.c 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/XpmCrDatFrI.c 2005-01-18 19:26:30.708048952 +0100
-@@ -33,13 +33,16 @@
- * Developed by Arnaud Le Hors *
- \*****************************************************************************/
-
-+/* October 2004, source code review by Thomas Biege <thomas@suse.de> */
-+
- #include "XpmI.h"
-
- LFUNC(CreateColors, int, (char **dataptr, unsigned int *data_size,
- XpmColor *colors, unsigned int ncolors,
- unsigned int cpp));
-
--LFUNC(CreatePixels, void, (char **dataptr, unsigned int width,
-+LFUNC(CreatePixels, void, (char **dataptr, unsigned int data_size,
-+ unsigned int width,
- unsigned int height, unsigned int cpp,
- unsigned int *pixels, XpmColor *colors));
-
-@@ -47,7 +50,8 @@
- unsigned int *ext_size,
- unsigned int *ext_nlines));
-
--LFUNC(CreateExtensions, void, (char **dataptr, unsigned int offset,
-+LFUNC(CreateExtensions, void, (char **dataptr, unsigned int data_size,
-+ unsigned int offset,
- XpmExtension *ext, unsigned int num,
- unsigned int ext_nlines));
-
-@@ -88,7 +92,7 @@
-
- #undef RETURN
- #define RETURN(status) \
--{ \
-+do { \
- if (header) { \
- for (l = 0; l < header_nlines; l++) \
- if (header[l]) \
-@@ -96,7 +100,7 @@
- XpmFree(header); \
- } \
- return(status); \
--}
-+} while(0)
-
- int
- XpmCreateDataFromXpmImage(data_return, image, info)
-@@ -127,11 +131,17 @@
- * alloc a temporary array of char pointer for the header section which
- * is the hints line + the color table lines
- */
-- header_nlines = 1 + image->ncolors;
-+ header_nlines = 1 + image->ncolors; /* this may wrap and/or become 0 */
-+
-+ /* 2nd check superfluous if we do not need header_nlines any further */
-+ if(header_nlines <= image->ncolors ||
-+ header_nlines >= UINT_MAX / sizeof(char *))
-+ return(XpmNoMemory);
-+
- 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 *));
-+ header = (char **) XpmCalloc(header_size, sizeof(char *)); /* can we trust image->ncolors */
- if (!header)
- return (XpmNoMemory);
-
-@@ -175,8 +185,22 @@
-
- /* now we know the size needed, alloc the data and copy the header lines */
- offset = image->width * image->cpp + 1;
-- data_size = header_size + (image->height + ext_nlines) * sizeof(char *)
-- + image->height * offset + ext_size;
-+
-+ if(offset <= image->width || offset <= image->cpp)
-+ RETURN(XpmNoMemory);
-+
-+ if( (image->height + ext_nlines) >= UINT_MAX / sizeof(char *))
-+ RETURN(XpmNoMemory);
-+ data_size = (image->height + ext_nlines) * sizeof(char *);
-+
-+ if (image->height > UINT_MAX / offset ||
-+ image->height * offset > UINT_MAX - data_size)
-+ RETURN(XpmNoMemory);
-+ data_size += image->height * offset;
-+
-+ if( (header_size + ext_size) >= (UINT_MAX - data_size) )
-+ RETURN(XpmNoMemory);
-+ data_size += header_size + ext_size;
-
- data = (char **) XpmMalloc(data_size);
- if (!data)
-@@ -184,8 +208,10 @@
-
- data_nlines = header_nlines + image->height + ext_nlines;
- *data = (char *) (data + data_nlines);
-+
-+ /* can header have less elements then n suggests? */
- n = image->ncolors;
-- for (l = 0, sptr = data, sptr2 = header; l <= n; l++, sptr++, sptr2++) {
-+ for (l = 0, sptr = data, sptr2 = header; l <= n && sptr && sptr2; l++, sptr++, sptr2++) {
- strcpy(*sptr, *sptr2);
- *(sptr + 1) = *sptr + strlen(*sptr2) + 1;
- }
-@@ -194,12 +220,13 @@
- data[header_nlines] = (char *) data + header_size
- + (image->height + ext_nlines) * sizeof(char *);
-
-- CreatePixels(data + header_nlines, image->width, image->height,
-+ CreatePixels(data + header_nlines, data_size-header_nlines, image->width, image->height,
- image->cpp, image->data, image->colorTable);
-
- /* print extensions */
- if (extensions)
-- CreateExtensions(data + header_nlines + image->height - 1, offset,
-+ CreateExtensions(data + header_nlines + image->height - 1,
-+ data_size - header_nlines - image->height + 1, offset,
- info->extensions, info->nextensions,
- ext_nlines);
-
-@@ -221,23 +248,34 @@
- char *s, *s2;
- char **defaults;
-
-+ /* can ncolors be trusted here? */
- for (a = 0; a < ncolors; a++, colors++, dataptr++) {
-
- defaults = (char **) colors;
-+ if (sizeof(buf) <= cpp)
-+ return(XpmNoMemory);
- strncpy(buf, *defaults++, cpp);
- s = buf + cpp;
-
-+ if(sizeof(buf) <= (s-buf))
-+ return XpmNoMemory;
-+
- for (key = 1; key <= NKEYS; key++, defaults++) {
- if (s2 = *defaults) {
- #ifndef VOID_SPRINTF
- s +=
- #endif
-- sprintf(s, "\t%s %s", xpmColorKeys[key - 1], s2);
-++ /* assume C99 compliance */
-++ snprintf(s, sizeof(buf)-(s-buf), "\t%s %s", xpmColorKeys[key - 1], s2);
- #ifdef VOID_SPRINTF
- s += strlen(s);
- #endif
-+ /* does s point out-of-bounds? */
-++ if(sizeof(buf) < (s-buf))
-++ return XpmNoMemory;
- }
- }
-+ /* what about using strdup()? */
- l = s - buf + 1;
- s = (char *) XpmMalloc(l);
- if (!s)
-@@ -249,8 +287,9 @@
- }
-
- static void
--CreatePixels(dataptr, width, height, cpp, pixels, colors)
-+CreatePixels(dataptr, data_size, width, height, cpp, pixels, colors)
- char **dataptr;
-+ unsigned int data_size;
- unsigned int width;
- unsigned int height;
- unsigned int cpp;
-@@ -260,21 +299,38 @@
- char *s;
- unsigned int x, y, h, offset;
-
-+ if(height <= 1)
-+ return;
-+
- h = height - 1;
-+
- offset = width * cpp + 1;
-+
-+ if(offset <= width || offset <= cpp)
-+ return;
-+
-+ /* why trust h? */
- for (y = 0; y < h; y++, dataptr++) {
- s = *dataptr;
-+ /* why trust width? */
- for (x = 0; x < width; x++, pixels++) {
-- strncpy(s, colors[*pixels].string, cpp);
-+ if(cpp > (data_size - (s - *dataptr)))
-+ return;
-+ strncpy(s, colors[*pixels].string, cpp); /* why trust pixel? */
- s += cpp;
- }
- *s = '\0';
-+ if(offset > data_size)
-+ return;
- *(dataptr + 1) = *dataptr + offset;
- }
- /* duplicate some code to avoid a test in the loop */
- s = *dataptr;
-+ /* why trust width? */
- for (x = 0; x < width; x++, pixels++) {
-- strncpy(s, colors[*pixels].string, cpp);
-+ if(cpp > data_size - (s - *dataptr))
-+ return;
-+ strncpy(s, colors[*pixels].string, cpp); /* why should we trust *pixel? */
- s += cpp;
- }
- *s = '\0';
-@@ -307,8 +363,9 @@
- }
-
- static void
--CreateExtensions(dataptr, offset, ext, num, ext_nlines)
-+CreateExtensions(dataptr, data_size, offset, ext, num, ext_nlines)
- char **dataptr;
-+ unsigned int data_size;
- unsigned int offset;
- XpmExtension *ext;
- unsigned int num;
-@@ -321,12 +378,12 @@
- dataptr++;
- a = 0;
- for (x = 0; x < num; x++, ext++) {
-- sprintf(*dataptr, "XPMEXT %s", ext->name);
-+ snprintf(*dataptr, data_size, "XPMEXT %s", ext->name);
- a++;
- if (a < ext_nlines)
- *(dataptr + 1) = *dataptr + strlen(ext->name) + 8;
- dataptr++;
-- b = ext->nlines;
-+ b = ext->nlines; /* can we trust these values? */
- for (y = 0, line = ext->lines; y < b; y++, line++) {
- strcpy(*dataptr, *line);
- a++;
-diff -r -u motif.0194/lib/Xm/Xpmcreate.c motif/lib/Xm/Xpmcreate.c
---- motif.0194/lib/Xm/Xpmcreate.c 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/Xpmcreate.c 2005-01-18 19:55:57.894395792 +0100
-@@ -39,6 +39,8 @@
- * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
- */
-
-+/* October 2004, source code review by Thomas Biege <thomas@suse.de> */
-+
- #include "XpmI.h"
- #include <ctype.h>
-
-@@ -560,7 +562,7 @@
- */
- } else {
- #endif
-- int i;
-+ unsigned int i;
-
- ncols = visual->map_entries;
- cols = (XColor *) XpmCalloc(ncols, sizeof(XColor));
-@@ -718,17 +720,10 @@
- /* function call in case of error, frees only locally allocated variables */
- #undef RETURN
- #define RETURN(status) \
--{ \
-- if (ximage) XDestroyImage(ximage); \
-- if (shapeimage) XDestroyImage(shapeimage); \
-- if (image_pixels) XpmFree(image_pixels); \
-- if (mask_pixels) XpmFree(mask_pixels); \
-- if (nalloc_pixels) \
-- (*freeColors)(display, colormap, alloc_pixels, nalloc_pixels, NULL); \
-- if (alloc_pixels) XpmFree(alloc_pixels); \
-- if (used_pixels) XpmFree(used_pixels); \
-- return (status); \
--}
-+do { \
-+ ErrorStatus = status; \
-+ goto error; \
-+} while(0)
-
- int
- XpmCreateImageFromXpmImage(display, image,
-@@ -799,7 +794,7 @@
-
- ErrorStatus = XpmSuccess;
-
-- if (image->ncolors >= SIZE_MAX / sizeof(Pixel))
-+ if (image->ncolors >= UINT_MAX / sizeof(Pixel))
- return (XpmNoMemory);
-
- /* malloc pixels index tables */
-@@ -945,10 +940,14 @@
- return (XpmNoMemory);
-
- #ifndef FOR_MSW
-- if (height != 0 && (*image_return)->bytes_per_line >= SIZE_MAX / height)
-+ if (height != 0 && (*image_return)->bytes_per_line >= INT_MAX / height) {
-+ XDestroyImage(*image_return);
- return XpmNoMemory;
-+ }
- /* now that bytes_per_line must have been set properly alloc data */
-- (*image_return)->data =
-+ if((*image_return)->bytes_per_line == 0 || height == 0)
-+ return XpmNoMemory;
-+ (*image_return)->data =
- (char *) XpmMalloc((*image_return)->bytes_per_line * height);
-
- if (!(*image_return)->data) {
-@@ -975,7 +974,7 @@
- LFUNC(_putbits, void, (register char *src, int dstoffset,
- register int numbits, register char *dst));
-
--LFUNC(_XReverse_Bytes, int, (register unsigned char *bpt, register int nb));
-+LFUNC(_XReverse_Bytes, int, (register unsigned char *bpt, register unsigned int nb));
-
- static unsigned char Const _reverse_byte[0x100] = {
- 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
-@@ -1015,12 +1014,12 @@
- static int
- _XReverse_Bytes(bpt, nb)
- register unsigned char *bpt;
-- register int nb;
-+ register unsigned int nb;
- {
- do {
- *bpt = _reverse_byte[*bpt];
- bpt++;
-- } while (--nb > 0);
-+ } while (--nb > 0); /* is nb user-controled? */
- return 0;
- }
-
-@@ -1159,7 +1158,7 @@
- register char *src;
- register char *dst;
- register unsigned int *iptr;
-- register int x, y, i;
-+ register unsigned int x, y, i;
- register char *data;
- Pixel pixel, px;
- int nbytes, depth, ibu, ibpp;
-@@ -1169,8 +1168,8 @@
- depth = image->depth;
- if (depth == 1) {
- ibu = image->bitmap_unit;
-- for (y = 0; y < height; y++)
-- for (x = 0; x < width; x++, iptr++) {
-+ for (y = 0; y < height; y++) /* how can we trust height */
-+ for (x = 0; x < width; x++, iptr++) { /* how can we trust width */
- pixel = pixels[*iptr];
- for (i = 0, px = pixel; i < sizeof(unsigned long);
- i++, px >>= 8)
-@@ -1245,12 +1244,12 @@
- {
- unsigned char *data;
- unsigned int *iptr;
-- int y;
-+ unsigned int y;
- Pixel pixel;
-
- #ifdef WITHOUT_SPEEDUPS
-
-- int x;
-+ unsigned int x;
- unsigned char *addr;
-
- data = (unsigned char *) image->data;
-@@ -1287,7 +1286,7 @@
-
- #else /* WITHOUT_SPEEDUPS */
-
-- int bpl = image->bytes_per_line;
-+ unsigned int bpl = image->bytes_per_line;
- unsigned char *data_ptr, *max_data;
-
- data = (unsigned char *) image->data;
-@@ -1355,11 +1354,11 @@
- {
- unsigned char *data;
- unsigned int *iptr;
-- int y;
-+ unsigned int y;
-
- #ifdef WITHOUT_SPEEDUPS
-
-- int x;
-+ unsigned int x;
- unsigned char *addr;
-
- data = (unsigned char *) image->data;
-@@ -1383,7 +1382,7 @@
-
- Pixel pixel;
-
-- int bpl = image->bytes_per_line;
-+ unsigned int bpl = image->bytes_per_line;
- unsigned char *data_ptr, *max_data;
-
- data = (unsigned char *) image->data;
-@@ -1436,11 +1435,11 @@
- {
- char *data;
- unsigned int *iptr;
-- int y;
-+ unsigned int y;
-
- #ifdef WITHOUT_SPEEDUPS
-
-- int x;
-+ unsigned int x;
-
- data = image->data;
- iptr = pixelindex;
-@@ -1450,7 +1449,7 @@
-
- #else /* WITHOUT_SPEEDUPS */
-
-- int bpl = image->bytes_per_line;
-+ unsigned int bpl = image->bytes_per_line;
- char *data_ptr, *max_data;
-
- data = image->data;
-@@ -1485,12 +1484,12 @@
- PutImagePixels(image, width, height, pixelindex, pixels);
- else {
- unsigned int *iptr;
-- int y;
-+ unsigned int y;
- char *data;
-
- #ifdef WITHOUT_SPEEDUPS
-
-- int x;
-+ unsigned int x;
-
- data = image->data;
- iptr = pixelindex;
-@@ -1668,6 +1667,9 @@
- Pixel px;
- int nbytes;
-
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- for (i=0, px=pixel; i<sizeof(unsigned long); i++, px>>=8)
- ((unsigned char *)&pixel)[i] = px;
- src = &ximage->data[XYINDEX(x, y, ximage)];
-@@ -1699,7 +1701,10 @@
- register int i;
- register char *data;
- Pixel px;
-- int nbytes, ibpp;
-+ unsigned int nbytes, ibpp;
-+
-+ if(x < 0 || y < 0)
-+ return 0;
-
- ibpp = ximage->bits_per_pixel;
- if (ximage->depth == 4)
-@@ -1732,6 +1737,9 @@
- {
- unsigned char *addr;
-
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- addr = &((unsigned char *)ximage->data) [ZINDEX32(x, y, ximage)];
- *((unsigned long *)addr) = pixel;
- return 1;
-@@ -1746,6 +1754,9 @@
- {
- unsigned char *addr;
-
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- addr = &((unsigned char *)ximage->data) [ZINDEX32(x, y, ximage)];
- addr[0] = pixel >> 24;
- addr[1] = pixel >> 16;
-@@ -1763,6 +1774,9 @@
- {
- unsigned char *addr;
-
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- addr = &((unsigned char *)ximage->data) [ZINDEX32(x, y, ximage)];
- addr[3] = pixel >> 24;
- addr[2] = pixel >> 16;
-@@ -1780,6 +1794,9 @@
- {
- unsigned char *addr;
-
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- addr = &((unsigned char *)ximage->data) [ZINDEX16(x, y, ximage)];
- addr[0] = pixel >> 8;
- addr[1] = pixel;
-@@ -1795,6 +1812,9 @@
- {
- unsigned char *addr;
-
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- addr = &((unsigned char *)ximage->data) [ZINDEX16(x, y, ximage)];
- addr[1] = pixel >> 8;
- addr[0] = pixel;
-@@ -1808,6 +1828,9 @@
- int y;
- unsigned long pixel;
- {
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- ximage->data[ZINDEX8(x, y, ximage)] = pixel;
- return 1;
- }
-@@ -1819,6 +1842,9 @@
- int y;
- unsigned long pixel;
- {
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- if (pixel & 1)
- ximage->data[ZINDEX1(x, y, ximage)] |= 0x80 >> (x & 7);
- else
-@@ -1833,6 +1859,9 @@
- int y;
- unsigned long pixel;
- {
-+ if(x < 0 || y < 0)
-+ return 0;
-+
- if (pixel & 1)
- ximage->data[ZINDEX1(x, y, ximage)] |= 1 << (x & 7);
- else
-@@ -1992,8 +2021,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)
-@@ -2104,7 +2133,7 @@
- * free the hastable
- */
- if (ErrorStatus != XpmSuccess)
-- RETURN(ErrorStatus)
-+ RETURN(ErrorStatus);
- else if (USE_HASHTABLE)
- xpmHashTableFree(&hashtable);
-
-@@ -2251,14 +2280,14 @@
-
- /* array of pointers malloced by need */
- unsigned short *cidx[256];
-- int char1;
-+ unsigned int char1;
-
- if (ncolors > 256)
- return (XpmFileInvalid);
-
- bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */
- for (a = 0; a < ncolors; a++) {
-- char1 = colorTable[a].string[0];
-+ char1 = (unsigned char) colorTable[a].string[0];
- if (cidx[char1] == NULL) { /* get new memory */
- cidx[char1] = (unsigned short *)
- XpmCalloc(256, sizeof(unsigned short));
-diff -r -u motif.0194/lib/Xm/Xpmdata.c motif/lib/Xm/Xpmdata.c
---- motif.0194/lib/Xm/Xpmdata.c 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/Xpmdata.c 2005-01-18 20:01:43.286888152 +0100
-@@ -274,7 +274,7 @@
- }
- ungetc(c, file);
- }
-- return (n);
-+ return (n); /* this returns bytes read + 1 */
- }
-
- /*
-@@ -371,8 +371,9 @@
- {
- if (!mdata->type)
- *cmt = NULL;
-- else if (mdata->CommentLength) {
-- *cmt = (char *) XpmMalloc(mdata->CommentLength + 1);
-+ else if (dmata->CommentLength != 0 && mdata->CommentLength < UINT_MAX - 1) {
-+ if( (*cmt = (char *) XpmMalloc(mdata->CommentLength + 1)) == NULL)
-+ return XpmNoMemory;
- strncpy(*cmt, mdata->Comment, mdata->CommentLength);
- (*cmt)[mdata->CommentLength] = '\0';
- mdata->CommentLength = 0;
-@@ -400,7 +401,7 @@
- xpmParseHeader(mdata)
- xpmData *mdata;
- {
-- char buf[BUFSIZ];
-+ char buf[BUFSIZ+1] = {0};
- int l, n = 0;
-
- if (mdata->type) {
-diff -r -u motif.0194/lib/Xm/Xpmhashtab.c motif/lib/Xm/Xpmhashtab.c
---- motif.0194/lib/Xm/Xpmhashtab.c 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/Xpmhashtab.c 2005-01-18 20:02:37.302676504 +0100
-@@ -139,13 +139,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)
-@@ -207,7 +207,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)
-diff -r -u motif.0194/lib/Xm/XpmI.h motif/lib/Xm/XpmI.h
---- motif.0194/lib/Xm/XpmI.h 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/XpmI.h 2005-01-18 19:44:59.012561056 +0100
-@@ -108,8 +108,10 @@
- * lets try to solve include files
- */
-
-+#include <sys/types.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <limits.h>
- /* stdio.h doesn't declare popen on a Sequent DYNIX OS */
- #ifdef sequent
- extern FILE *popen();
-diff -r -u motif.0194/lib/Xm/Xpmmisc.c motif/lib/Xm/Xpmmisc.c
---- motif.0194/lib/Xm/Xpmmisc.c 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/Xpmmisc.c 2005-01-18 20:03:23.061720072 +0100
-@@ -47,7 +47,7 @@
- char *s1;
- {
- char *s2;
-- int l = strlen(s1) + 1;
-+ size_t l = strlen(s1) + 1;
-
- if (s2 = (char *) XpmMalloc(l))
- strcpy(s2, s1);
-diff -r -u motif.0194/lib/Xm/Xpmparse.c motif/lib/Xm/Xpmparse.c
---- motif.0194/lib/Xm/Xpmparse.c 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/Xpmparse.c 2005-01-18 20:09:04.590799760 +0100
-@@ -43,21 +43,21 @@
- #include <ctype.h>
-
- #ifdef HAS_STRLCAT
--# define STRLCAT(dst, src, dstsize) { \
-+# define STRLCAT(dst, src, dstsize) do { \
- if (strlcat(dst, src, dstsize) >= (dstsize)) \
-- return (XpmFileInvalid); }
--# define STRLCPY(dst, src, dstsize) { \
-+ return (XpmFileInvalid); } while(0)
-+# define STRLCPY(dst, src, dstsize) do { \
- if (strlcpy(dst, src, dstsize) >= (dstsize)) \
-- return (XpmFileInvalid); }
-+ return (XpmFileInvalid); } while(0)
- #else
--# define STRLCAT(dst, src, dstsize) { \
-+# define STRLCAT(dst, src, dstsize) do { \
- if ((strlen(dst) + strlen(src)) < (dstsize)) \
- strcat(dst, src); \
-- else return (XpmFileInvalid); }
--# define STRLCPY(dst, src, dstsize) { \
-+ else return (XpmFileInvalid); } while(0)
-+# define STRLCPY(dst, src, dstsize) do { \
- if (strlen(src) < (dstsize)) \
- strcpy(dst, src); \
-- else return (XpmFileInvalid); }
-+ else return (XpmFileInvalid); } while(0)
- #endif
-
- LFUNC(ParsePixels, int, (xpmData *data, unsigned int width,
-@@ -77,14 +77,9 @@
- /* function call in case of error, frees only locally allocated variables */
- #undef RETURN
- #define RETURN(status) \
--{ \
-- if (colorTable) xpmFreeColorTable(colorTable, ncolors); \
-- if (pixelindex) XpmFree(pixelindex); \
-- if (hints_cmt) XpmFree(hints_cmt); \
-- if (colors_cmt) XpmFree(colors_cmt); \
-- if (pixels_cmt) XpmFree(pixels_cmt); \
-- return(status); \
--}
-+do { \
-+ goto error;
-+} while(0)
-
- /*
- * This function parses an Xpm file or data and store the found informations
-@@ -347,7 +342,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)
-@@ -360,7 +355,7 @@
- /*
- * read pixel value
- */
-- if (cpp >= SIZE_MAX - 1) {
-+ if (cpp >= UINT_MAX - 1) {
- xpmFreeColorTable(colorTable, ncolors);
- return (XpmNoMemory);
- }
-@@ -419,9 +414,9 @@
- return (XpmFileInvalid);
- }
- if (!lastwaskey)
-- STRLCAT(curbuf, " ", sizeof(curbuf)); /* append space */
-+ STRLCAT(curbuf, " ", sizeof(curbuf));/* append space */
- buf[l] = '\0';
-- STRLCAT(curbuf, buf, sizeof(curbuf));/* append buf */
-+ STRLCAT(curbuf, buf, sizeof(curbuf)); /* append buf */
- lastwaskey = 0;
- }
- }
-@@ -429,7 +424,7 @@
- xpmFreeColorTable(colorTable, ncolors);
- return (XpmFileInvalid);
- }
-- len = strlen(curbuf) + 1;
-+ len = strlen(curbuf) + 1; /* integer overflow just theoretically possible */
- s = defaults[curkey] = (char *) XpmMalloc(len);
- if (!s) {
- xpmFreeColorTable(colorTable, ncolors);
-@@ -448,7 +443,7 @@
- /*
- * read pixel value
- */
-- if (cpp >= SIZE_MAX - 1) {
-+ if (cpp >= UINT_MAX - 1) {
- xpmFreeColorTable(colorTable, ncolors);
- return (XpmNoMemory);
- }
-@@ -493,7 +488,7 @@
- memcpy(s, curbuf, len);
- color->c_color = s;
- *curbuf = '\0'; /* reset curbuf */
-- if (a < ncolors - 1)
-+ if (a < ncolors - 1) /* can we trust ncolors -> leave data's bounds */
- xpmNextString(data); /* get to the next string */
- }
- }
-@@ -512,11 +507,11 @@
- xpmHashTable *hashtable;
- unsigned int **pixels;
- {
-- unsigned int *iptr, *iptr2;
-+ unsigned int *iptr, *iptr2 = NULL; /* found by Egbert Eich */
- unsigned int a, x, y;
-
-- if ((height > 0 && width >= SIZE_MAX / height) ||
-- width * height >= SIZE_MAX / sizeof(unsigned int))
-+ if ((height > 0 && width >= UINT_MAX / height) ||
-+ width * height >= UINT_MAX / sizeof(unsigned int))
- return XpmNoMemory;
- #ifndef FOR_MSW
- iptr2 = (unsigned int *) XpmMalloc(sizeof(unsigned int) * width * height);
-@@ -541,8 +536,10 @@
- {
- unsigned short colidx[256];
-
-- if (ncolors > 256)
-+ if (ncolors > 256) {
-+ XpmFree(iptr2); /* found by Egbert Eich */
- return (XpmFileInvalid);
-+ }
-
- bzero((char *)colidx, 256 * sizeof(short));
- for (a = 0; a < ncolors; a++)
-@@ -569,16 +566,20 @@
- {
-
- /* free all allocated pointers at all exits */
--#define FREE_CIDX {int f; for (f = 0; f < 256; f++) \
--if (cidx[f]) XpmFree(cidx[f]);}
-+#define FREE_CIDX \
-+do \
-+{ \
-+ int f; for (f = 0; f < 256; f++) \
-+ if (cidx[f]) XpmFree(cidx[f]); \
-+} while(0)
-
- /* 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++) {
-- char1 = colorTable[a].string[0];
-+ char1 = (unsigned char) colorTable[a].string[0];
- if (cidx[char1] == NULL) { /* get new memory */
- cidx[char1] = (unsigned short *)
- XpmCalloc(256, sizeof(unsigned short));
-@@ -621,8 +622,10 @@
- char *s;
- char buf[BUFSIZ];
-
-- if (cpp >= sizeof(buf))
-+ if (cpp >= sizeof(buf)) {
-+ XpmFree(iptr2); /* found by Egbert Eich */
- return (XpmFileInvalid);
-+ }
-
- buf[cpp] = '\0';
- if (USE_HASHTABLE) {
-@@ -632,7 +635,7 @@
- xpmNextString(data);
- for (x = 0; x < width; x++, iptr++) {
- for (a = 0, s = buf; a < cpp; a++, s++)
-- *s = xpmGetC(data);
-+ *s = xpmGetC(data); /* int assigned to char, not a problem here */
- slot = xpmHashSlot(hashtable, buf);
- if (!*slot) { /* no color matches */
- XpmFree(iptr2);
-@@ -646,7 +649,7 @@
- xpmNextString(data);
- for (x = 0; x < width; x++, iptr++) {
- for (a = 0, s = buf; a < cpp; a++, s++)
-- *s = xpmGetC(data);
-+ *s = xpmGetC(data); /* int assigned to char, not a problem here */
- for (a = 0; a < ncolors; a++)
- if (!strcmp(colorTable[a].string, buf))
- break;
-@@ -701,7 +704,7 @@
- while (!notstart && notend) {
- /* there starts an extension */
- ext = (XpmExtension *)
-- XpmRealloc(exts, (num + 1) * sizeof(XpmExtension));
-+ XpmRealloc(exts, (num + 1) * sizeof(XpmExtension)); /* can the loop be forced to iterate often enough to make "(num + 1) * sizeof(XpmExtension)" wrapping? */
- if (!ext) {
- XpmFree(string);
- XpmFreeExtensions(exts, num);
-@@ -738,7 +741,7 @@
- while ((notstart = strncmp("XPMEXT", string, 6))
- && (notend = strncmp("XPMENDEXT", string, 9))) {
- sp = (char **)
-- XpmRealloc(ext->lines, (nlines + 1) * sizeof(char *));
-+ XpmRealloc(ext->lines, (nlines + 1) * sizeof(char *)); /* can we iterate enough for a wrapping? */
- if (!sp) {
- XpmFree(string);
- ext->nlines = nlines;
-diff -r -u motif.0194/lib/Xm/XpmRdFToBuf.c motif/lib/Xm/XpmRdFToBuf.c
---- motif.0194/lib/Xm/XpmRdFToBuf.c 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/XpmRdFToBuf.c 2005-01-18 19:37:46.233353496 +0100
-@@ -38,6 +38,8 @@
- * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
- */
-
-+/* October 2004, source code review by Thomas Biege <thomas@suse.de> */
-+
- #include "XpmI.h"
- #include <sys/stat.h>
- #if !defined(FOR_MSW) && !defined(WIN32)
-@@ -59,7 +61,8 @@
- char *filename;
- char **buffer_return;
- {
-- int fd, fcheck, len;
-+ int fd, fcheck;
-+ off_t len;
- char *ptr;
- struct stat stats;
- FILE *fp;
-@@ -83,7 +86,7 @@
- close(fd);
- return XpmOpenFailed;
- }
-- len = (int) stats.st_size;
-+ len = stats.st_size;
- ptr = (char *) XpmMalloc(len + 1);
- if (!ptr) {
- fclose(fp);
-diff -r -u motif.0194/lib/Xm/XpmRdFToI.c motif/lib/Xm/XpmRdFToI.c
---- motif.0194/lib/Xm/XpmRdFToI.c 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/XpmRdFToI.c 2005-01-18 19:39:36.739554000 +0100
-@@ -33,6 +33,8 @@
- * Developed by Arnaud Le Hors *
- \*****************************************************************************/
-
-+/* October 2004, source code review by Thomas Biege <thomas@suse.de> */
-+
- #include "XpmI.h"
- #include <sys/stat.h>
- #include <sys/param.h>
-@@ -122,6 +124,12 @@
- /*
- * open the given file to be read as an xpmData which is returned.
- */
-+#ifndef NO_ZPIPE
-+ FILE *s_popen(char *cmd, const char *type);
-+#else
-+# define s_popen popen
-+#endif
-+
- static int
- OpenReadFile(filename, mdata)
- char *filename;
-@@ -139,17 +147,21 @@
- mdata->type = XPMFILE;
- } else {
- #ifndef NO_ZPIPE
-- int len = strlen(filename);
-+ size_t len = strlen(filename);
-+
-+ if(len == 0 ||
-+ filename[len-1] == '/')
-+ return(XpmOpenFailed);
- if ((len > 2) && !strcmp(".Z", filename + (len - 2))) {
- mdata->type = XPMPIPE;
-- sprintf(buf, "uncompress -c \"%s\"", filename);
-- if (!(mdata->stream.file = popen(buf, "r")))
-+ snprintf(buf, sizeof(buf), "uncompress -c \"%s\"", filename);
-+ if (!(mdata->stream.file = s_popen(buf, "r")))
- return (XpmOpenFailed);
-
- } else if ((len > 3) && !strcmp(".gz", filename + (len - 3))) {
- mdata->type = XPMPIPE;
-- sprintf(buf, "gunzip -qc \"%s\"", filename);
-- if (!(mdata->stream.file = popen(buf, "r")))
-+ snprintf(buf, sizeof(buf), "gunzip -qc \"%s\"", filename);
-+ if (!(mdata->stream.file = s_popen(buf, "r")))
- return (XpmOpenFailed);
-
- } else {
-@@ -157,19 +169,19 @@
- if (!(compressfile = (char *) XpmMalloc(len + 4)))
- return (XpmNoMemory);
-
-- sprintf(compressfile, "%s.Z", filename);
-+ snprintf(compressfile, len+4, "%s.Z", filename);
- if (!stat(compressfile, &status)) {
-- sprintf(buf, "uncompress -c \"%s\"", compressfile);
-- if (!(mdata->stream.file = popen(buf, "r"))) {
-+ snprintf(buf, sizeof(buf), "uncompress -c \"%s\"", compressfile);
-+ if (!(mdata->stream.file = s_popen(buf, "r"))) {
- XpmFree(compressfile);
- return (XpmOpenFailed);
- }
- mdata->type = XPMPIPE;
- } else {
-- sprintf(compressfile, "%s.gz", filename);
-+ snprintf(compressfile, len+4, "%s.gz", filename);
- if (!stat(compressfile, &status)) {
-- sprintf(buf, "gunzip -c \"%s\"", compressfile);
-- if (!(mdata->stream.file = popen(buf, "r"))) {
-+ snprintf(buf, sizeof(buf), "gunzip -c \"%s\"", compressfile);
-+ if (!(mdata->stream.file = s_popen(buf, "r"))) {
- XpmFree(compressfile);
- return (XpmOpenFailed);
- }
-@@ -211,7 +223,7 @@
- break;
- #ifndef NO_ZPIPE
- case XPMPIPE:
-- pclose(mdata->stream.file);
-+ fclose(mdata->stream.file);
- break;
- #endif
- }
-diff -r -u motif.0194/lib/Xm/Xpmscan.c motif/lib/Xm/Xpmscan.c
---- motif.0194/lib/Xm/Xpmscan.c 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/Xpmscan.c 2005-01-18 20:15:18.509955408 +0100
-@@ -38,6 +38,8 @@
- * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
- */
-
-+/* October 2004, source code review by Thomas Biege <thomas@suse.de> */
-+
- #include "XpmI.h"
-
- #define MAXPRINTABLE 92 /* number of printable ascii chars
-@@ -158,12 +160,10 @@
- /* function call in case of error, frees only locally allocated variables */
- #undef RETURN
- #define RETURN(status) \
--{ \
-- if (pmap.pixelindex) XpmFree(pmap.pixelindex); \
-- if (pmap.pixels) XpmFree(pmap.pixels); \
-- if (colorTable) xpmFreeColorTable(colorTable, pmap.ncolors); \
-- return(status); \
--}
-+do { \
-+ ErrorStatus = status; \
-+ goto error; \
-+} while(0)
-
- /*
- * This function scans the given image and stores the found informations in
-@@ -221,15 +221,15 @@
- else
- cpp = 0;
-
-- if ((height > 0 && width >= SIZE_MAX / height) ||
-- width * height >= SIZE_MAX / sizeof(unsigned int))
-+ if ((height > 0 && width >= UINT_MAX / height) ||
-+ 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);
-@@ -286,7 +286,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)
-@@ -335,7 +335,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);
-@@ -428,7 +428,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)
-@@ -585,7 +585,7 @@
- char *dst;
- unsigned int *iptr;
- char *data;
-- int x, y, i;
-+ unsigned int x, y, i;
- int bits, depth, ibu, ibpp, offset;
- unsigned long lbt;
- Pixel pixel, px;
-@@ -687,7 +687,7 @@
- unsigned char *addr;
- unsigned char *data;
- unsigned int *iptr;
-- int x, y;
-+ unsigned int x, y;
- unsigned long lbt;
- Pixel pixel;
- int depth;
-@@ -752,7 +752,7 @@
- unsigned char *addr;
- unsigned char *data;
- unsigned int *iptr;
-- int x, y;
-+ unsigned int x, y;
- unsigned long lbt;
- Pixel pixel;
- int depth;
-@@ -797,7 +797,7 @@
- {
- unsigned int *iptr;
- unsigned char *data;
-- int x, y;
-+ unsigned int x, y;
- unsigned long lbt;
- Pixel pixel;
- int depth;
-@@ -830,7 +830,7 @@
- int (*storeFunc) ();
- {
- unsigned int *iptr;
-- int x, y;
-+ unsigned int x, y;
- char *data;
- Pixel pixel;
- int xoff, yoff, offset, bpl;
-Nur in motif/lib/Xm: Xpms_popen.c.
-diff -r -u motif.0194/lib/Xm/XpmWrFFrBuf.c motif/lib/Xm/XpmWrFFrBuf.c
---- motif.0194/lib/Xm/XpmWrFFrBuf.c 2000-05-10 16:02:01.000000000 +0200
-+++ motif/lib/Xm/XpmWrFFrBuf.c 2005-01-18 19:40:49.472496912 +0100
-@@ -33,6 +33,8 @@
- * Developed by Arnaud Le Hors *
- \*****************************************************************************/
-
-+/* October 2004, source code review by Thomas Biege <thomas@suse.de> */
-+
- #include "XpmI.h"
-
- int
-@@ -50,7 +52,7 @@
- fcheck = fwrite(buffer, len, 1, fp);
- fclose(fp);
- if (fcheck != 1)
-- return XpmOpenFailed;
-+ return XpmOpenFailed; /* maybe use a better return value */
-
- return XpmSuccess;
- }
-diff -r -u motif.0194/lib/Xm/XpmWrFFrI.c motif/lib/Xm/XpmWrFFrI.c
---- motif.0194/lib/Xm/XpmWrFFrI.c 2005-01-18 15:34:38.000000000 +0100
-+++ motif/lib/Xm/XpmWrFFrI.c 2005-01-18 19:43:51.397840056 +0100
-@@ -33,6 +33,8 @@
- * Developed by Arnaud Le Hors *
- \*****************************************************************************/
-
-+/* October 2004, source code review by Thomas Biege <thomas@suse.de> */
-+
- #include "XpmI.h"
- #if !defined(NO_ZPIPE) && defined(WIN32)
- # define popen _popen
-@@ -93,7 +95,7 @@
- XpmInfo *info;
- {
- xpmData mdata;
-- char *name, *dot, *s, new_name[BUFSIZ];
-+ char *name, *dot, *s, new_name[BUFSIZ] = {0};
- int ErrorStatus;
-
- /* open file to write */
-@@ -112,7 +114,8 @@
- #endif
- /* let's try to make a valid C syntax name */
- if (dot = index(name, '.')) {
-- strcpy(new_name, name);
-+ strncpy(new_name, name, sizeof(new_name));
-+ + new_name[sizeof(new_name)-1] = 0;
- /* change '.' to '_' */
- name = s = new_name;
- while (dot = index(s, '.')) {
-@@ -122,7 +125,8 @@
- }
- if (dot = index(name, '-')) {
- if (name != new_name) {
-- strcpy(new_name, name);
-+ strncpy(new_name, name, sizeof(new_name));
-+ new_name[sizeof(new_name)-1] = 0;
- name = new_name;
- }
- /* change '-' to '_' */
-@@ -239,7 +243,7 @@
- unsigned int x, y, h;
-
- h = height - 1;
-- if (cpp != 0 && width >= (SIZE_MAX - 3)/cpp)
-+ if (cpp != 0 && width >= (UINT_MAX - 3)/cpp)
- return XpmNoMemory;
- p = buf = (char *) XpmMalloc(width * cpp + 3);
- if (!buf)
-@@ -291,6 +295,11 @@
- /*
- * open the given file to be written as an xpmData which is returned
- */
-+#ifndef NO_ZPIPE
-+ FILE *s_popen(char *cmd, const char *type);
-+#else
-+# define s_popen popen
-+#endif
- static int
- OpenWriteFile(filename, mdata)
- char *filename;
-@@ -306,16 +315,23 @@
- mdata->type = XPMFILE;
- } else {
- #ifndef NO_ZPIPE
-- int len = strlen(filename);
-+ size_t len = strlen(filename);
-+
-+ if(len == 0 ||
-+ filename[0] == '/' ||
-+ strstr(filename, "../") != NULL ||
-+ filename[len-1] == '/')
-+ return(XpmOpenFailed);
-+
- if (len > 2 && !strcmp(".Z", filename + (len - 2))) {
-- sprintf(buf, "compress > \"%s\"", filename);
-- if (!(mdata->stream.file = popen(buf, "w")))
-+ snprintf(buf, sizeof(buf), "compress > \"%s\"", filename);
-+ if (!(mdata->stream.file = s_popen(buf, "w")))
- return (XpmOpenFailed);
-
- mdata->type = XPMPIPE;
- } else if (len > 3 && !strcmp(".gz", filename + (len - 3))) {
-- sprintf(buf, "gzip -q > \"%s\"", filename);
-- if (!(mdata->stream.file = popen(buf, "w")))
-+ snprintf(buf, sizeof(buf), "gzip -q > \"%s\"", filename);
-+ if (!(mdata->stream.file = s_popen(buf, "w")))
- return (XpmOpenFailed);
-
- mdata->type = XPMPIPE;
-@@ -346,7 +362,7 @@
- break;
- #ifndef NO_ZPIPE
- case XPMPIPE:
-- pclose(mdata->stream.file);
-+ fclose(mdata->stream.file);
- break;
- #endif
- }
diff --git a/x11-libs/openmotif/files/openmotif-2.2.3-CVE-2005-3964.patch b/x11-libs/openmotif/files/openmotif-2.2.3-CVE-2005-3964.patch
deleted file mode 100644
index 2069eb4fad78..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.2.3-CVE-2005-3964.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- openMotif-2.2.3/clients/uil/UilDiags.c 2002-01-10 21:55:42.000000000 +0100
-+++ openMotif-2.2.3/clients/uil/UilDiags.c 2005-12-12 22:09:48.000000000 +0100
-@@ -293,12 +293,12 @@ void diag_issue_diagnostic
- va_start(ap, l_start_column);
-
- #ifndef NO_MESSAGE_CATALOG
-- vsprintf( msg_buffer,
-+ vsnprintf( msg_buffer, 132,
- catgets(uil_catd, UIL_SET1, msg_cat_table[ message_number ],
- diag_rz_msg_table[ message_number ].ac_text),
- ap );
- #else
-- vsprintf( msg_buffer,
-+ vsnprintf( msg_buffer, 132,
- diag_rz_msg_table[ message_number ].ac_text,
- ap );
- #endif
-diff -rupN openMotif-2.2.3/clients/uil/UilSrcSrc.c openMotif-2.2.3-rc4/clients/uil/UilSrcSrc.c
---- openMotif-2.2.3/clients/uil/UilSrcSrc.c 2002-01-10 21:55:47.000000000 +0100
-+++ openMotif-2.2.3/clients/uil/UilSrcSrc.c 2005-12-12 22:10:46.000000000 +0100
-@@ -631,7 +631,7 @@ open_source_file( XmConst char
-
- /* place the file name in the expanded_name buffer */
-
-- strcpy(buffer, c_file_name);
-+ strncpy(buffer, c_file_name, 256);
-
- /* Determine if this is the main file or an include file. */
-
diff --git a/x11-libs/openmotif/files/openmotif-2.2.3-Mwm.defaults b/x11-libs/openmotif/files/openmotif-2.2.3-Mwm.defaults
deleted file mode 100644
index ea91b6fb8d86..000000000000
--- a/x11-libs/openmotif/files/openmotif-2.2.3-Mwm.defaults
+++ /dev/null
@@ -1,14 +0,0 @@
-Mwm*fontList: variable
-Mwm*iconClick: False
-Mwm*iconPlacement: top left
-Mwm*moveOpaque: True
-Mwm*rootButtonClick: True
-Mwm*foreground: #000000
-Mwm*background: #B8B8C0
-Mwm*enableThinThickness: True
-Mwm*enableEtchedInMenu: True
-Mwm*menu*fontList: -adobe-helvetica-medium-r-*--*-120-*-*-*-*-*-*
-Mwm*client*title*fontList: -adobe-helvetica-bold-r-*--*-100-*-*-*-*-*-*
-Mwm*icon*fontList: -adobe-helvetica-bold-r-*--*-80-*-*-*-*-*-*
-Mwm*feedback*fontList: -adobe-helvetica-bold-r-*--*-100-*-*-*-*-*-*
-Mwm*multiClickTime: 300
diff --git a/x11-libs/openmotif/files/site.def b/x11-libs/openmotif/files/site.def
deleted file mode 100644
index ee7667250687..000000000000
--- a/x11-libs/openmotif/files/site.def
+++ /dev/null
@@ -1,77 +0,0 @@
-XCOMM site: $TOG: site.def /main/12 1997/07/02 17:52:18 samborn $
-
-/***************************************************************************
- * *
- * X Consortium In-House Build Parameters *
- * Use at Your Own Risk *
- * *
- ***************************************************************************/
-
-#ifndef SiteIConfigFiles
-# define SiteIConfigFiles $(IRULESRC)/host.def
-# define LocalConfigFiles host.def
-#endif
-
-#ifdef BeforeVendorCF
-
-# include <host.def>
-
-/* We will import x11. */
-# define ImportX11 YES
-
-# ifndef TopLevelProject
-# define TopLevelProject Motif
-# endif
-
-/* On systems where cpp doesn't expand correctly macros in include directives
- * the two following macros need to be defined directly (accordingly to the
- * TopLevelProject macro defined above).
- */
-# if defined(SunArchitecture) || defined(AIXArchitecture) \
- || defined(USLArchitecture) || defined(UXPArchitecture)
-# ifndef ProjectRulesFile
-# define ProjectRulesFile <Motif.rules>
-# endif
-# ifndef ProjectTmplFile
-# define ProjectTmplFile <Motif.tmpl>
-# endif
-# endif
-
-# ifdef AlphaArchitecture
-# define HasDECCplusplus YES
-# endif
-
-# ifdef HPArchitecture
-# define HasHPCplusplus YES
-# endif
-
-# if defined(SGIArchitecture)
-# define MipsN32Architecture YES
-# endif
-
-# ifdef SunArchitecture
-# define HasSunCplusplus YES
-# endif
-
-# if defined(UXPArchitecture) || defined(USLArchitecture) \
- || defined(AIXArchitecture)
-# define HasCplusplus YES
-# endif
-
-#define LinuxDistribution LinuxUnknown
-#define i386Architecture YES
-#endif /* BeforeVendorCF */
-
-#ifdef AfterVendorCF
-
-# define X11ProjectRoot /usr/X11R6
-# define ProjectRoot /usr/X11R6
-# define VirtualBindingsPath /usr/X11R6/lib/bindings
-
-# undef DefaultUserPath
-# define DefaultUserPath /bin:/usr/bin:$(BINDIR):/usr/ucb:/usr/local/bin:/usr/local/bin/mh:/site/local/scripts
-
-#endif /* AfterVendorCF */
-#define YaccCmd bison --yacc
-
-
diff --git a/x11-libs/openmotif/files/site.def.1 b/x11-libs/openmotif/files/site.def.1
deleted file mode 100644
index ee7667250687..000000000000
--- a/x11-libs/openmotif/files/site.def.1
+++ /dev/null
@@ -1,77 +0,0 @@
-XCOMM site: $TOG: site.def /main/12 1997/07/02 17:52:18 samborn $
-
-/***************************************************************************
- * *
- * X Consortium In-House Build Parameters *
- * Use at Your Own Risk *
- * *
- ***************************************************************************/
-
-#ifndef SiteIConfigFiles
-# define SiteIConfigFiles $(IRULESRC)/host.def
-# define LocalConfigFiles host.def
-#endif
-
-#ifdef BeforeVendorCF
-
-# include <host.def>
-
-/* We will import x11. */
-# define ImportX11 YES
-
-# ifndef TopLevelProject
-# define TopLevelProject Motif
-# endif
-
-/* On systems where cpp doesn't expand correctly macros in include directives
- * the two following macros need to be defined directly (accordingly to the
- * TopLevelProject macro defined above).
- */
-# if defined(SunArchitecture) || defined(AIXArchitecture) \
- || defined(USLArchitecture) || defined(UXPArchitecture)
-# ifndef ProjectRulesFile
-# define ProjectRulesFile <Motif.rules>
-# endif
-# ifndef ProjectTmplFile
-# define ProjectTmplFile <Motif.tmpl>
-# endif
-# endif
-
-# ifdef AlphaArchitecture
-# define HasDECCplusplus YES
-# endif
-
-# ifdef HPArchitecture
-# define HasHPCplusplus YES
-# endif
-
-# if defined(SGIArchitecture)
-# define MipsN32Architecture YES
-# endif
-
-# ifdef SunArchitecture
-# define HasSunCplusplus YES
-# endif
-
-# if defined(UXPArchitecture) || defined(USLArchitecture) \
- || defined(AIXArchitecture)
-# define HasCplusplus YES
-# endif
-
-#define LinuxDistribution LinuxUnknown
-#define i386Architecture YES
-#endif /* BeforeVendorCF */
-
-#ifdef AfterVendorCF
-
-# define X11ProjectRoot /usr/X11R6
-# define ProjectRoot /usr/X11R6
-# define VirtualBindingsPath /usr/X11R6/lib/bindings
-
-# undef DefaultUserPath
-# define DefaultUserPath /bin:/usr/bin:$(BINDIR):/usr/ucb:/usr/local/bin:/usr/local/bin/mh:/site/local/scripts
-
-#endif /* AfterVendorCF */
-#define YaccCmd bison --yacc
-
-