diff options
author | Christian Weisgerber <naddy@FreeBSD.org> | 2014-04-08 15:35:18 +0000 |
---|---|---|
committer | Christian Weisgerber <naddy@FreeBSD.org> | 2014-04-08 15:35:18 +0000 |
commit | efda38ef6b31a72f5abad0881298df3c296bba7b (patch) | |
tree | 0f5e48b5973a5119a657c746adb72828f3ae1030 /multimedia/xmms | |
parent | 0e23f665e69d9cecad9ccb8140cf03187ad7d327 (diff) |
Notes
Diffstat (limited to 'multimedia/xmms')
-rw-r--r-- | multimedia/xmms/Makefile | 7 | ||||
-rw-r--r-- | multimedia/xmms/files/patch-xmms_bmp.c | 43 |
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); |