aboutsummaryrefslogtreecommitdiff
path: root/multimedia/xmms
diff options
context:
space:
mode:
authorChristian Weisgerber <naddy@FreeBSD.org>2014-04-08 15:35:18 +0000
committerChristian Weisgerber <naddy@FreeBSD.org>2014-04-08 15:35:18 +0000
commitefda38ef6b31a72f5abad0881298df3c296bba7b (patch)
tree0f5e48b5973a5119a657c746adb72828f3ae1030 /multimedia/xmms
parent0e23f665e69d9cecad9ccb8140cf03187ad7d327 (diff)
Notes
Diffstat (limited to 'multimedia/xmms')
-rw-r--r--multimedia/xmms/Makefile7
-rw-r--r--multimedia/xmms/files/patch-xmms_bmp.c43
2 files changed, 45 insertions, 5 deletions
diff --git a/multimedia/xmms/Makefile b/multimedia/xmms/Makefile
index a24500b1110e..12d6f7f3d317 100644
--- a/multimedia/xmms/Makefile
+++ b/multimedia/xmms/Makefile
@@ -3,7 +3,7 @@
PORTNAME= xmms
PORTVERSION= 1.2.11
-PORTREVISION?= 20 # Also chinese/xmms and russian/xmms
+PORTREVISION?= 21 # Also chinese/xmms and russian/xmms
CATEGORIES+= multimedia audio ipv6
MASTER_SITES= http://www.xmms.org/files/1.2.x/ \
http://legacy.xmms2.org/ \
@@ -16,13 +16,10 @@ COMMENT?= X Multimedia System -- An audio player with Winamp GUI
LICENSE= GPLv2
DEPRECATED= Abandonware, please consider using multimedia/audacious instead
-FORBIDDEN= Vulnerable: CVE-2007-0653 CVE-2007-0654
-EXPIRATION_DATE= 2014-05-01
CONFLICTS?= ru-xmms-[0-9]* zh-xmms-[0-9]*
GNU_CONFIGURE= yes
-USES= desktop-file-utils pathfix gmake iconv
-USE_BZIP2= yes
+USES= desktop-file-utils pathfix gmake iconv tar:bzip2
USE_GNOME= gtk12
USE_LDCONFIG= yes
USE_XORG= sm x11 xxf86vm
diff --git a/multimedia/xmms/files/patch-xmms_bmp.c b/multimedia/xmms/files/patch-xmms_bmp.c
new file mode 100644
index 000000000000..ea4d69de06e6
--- /dev/null
+++ b/multimedia/xmms/files/patch-xmms_bmp.c
@@ -0,0 +1,43 @@
+--- xmms/bmp.c.orig 2006-07-16 15:40:04.000000000 +0200
++++ xmms/bmp.c 2014-04-08 17:04:26.000000000 +0200
+@@ -19,6 +19,12 @@
+ */
+ #include "xmms.h"
+
++#if HAVE_STDINT_H
++#include <stdint.h>
++#elif !defined(UINT32_MAX)
++#define UINT32_MAX 0xffffffffU
++#endif
++
+ struct rgb_quad
+ {
+ guchar rgbBlue;
+@@ -183,7 +189,7 @@ GdkPixmap *read_bmp(gchar * filename)
+ }
+ else if (bitcount != 24 && bitcount != 16 && bitcount != 32)
+ {
+- gint ncols, i;
++ guint32 ncols, i;
+
+ ncols = offset - headSize - 14;
+ if (headSize == 12)
+@@ -201,9 +207,17 @@ GdkPixmap *read_bmp(gchar * filename)
+ }
+ }
+ fseek(file, offset, SEEK_SET);
++ /* verify buffer size */
++ if (!h || !w ||
++ w > (((UINT32_MAX - 3) / 3) / h) ||
++ h > (((UINT32_MAX - 3) / 3) / w)) {
++ g_warning("read_bmp(): width(%u)*height(%u) too large", w, h);
++ fclose(file);
++ return NULL;
++ }
++ data = g_malloc0((w * 3 * h) + 3); /* +3 is just for safety */
+ buffer = g_malloc(imgsize);
+ fread(buffer, imgsize, 1, file);
+- data = g_malloc0((w * 3 * h) + 3); /* +3 is just for safety */
+
+ if (bitcount == 1)
+ read_1b_rgb(buffer, imgsize, data, w, h, rgb_quads);