summaryrefslogtreecommitdiff
path: root/x11-themes/gnome-themes
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2003-10-17 01:12:49 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2003-10-17 01:12:49 +0000
commit29a99fdfacb069e19afeeb8094c83d346ec1594f (patch)
tree5c15113b1faae5cdd6c1196a9c25a80f7701bc9f /x11-themes/gnome-themes
parentFix checksum error, bump PORTREVISION. According to the author: (diff)
Fix a potential stack overflow crash in the Crux theme by allocating memory
with g_malloc() instead of alloca(). PR: 56752 Tested by: Jeremy Messenger <mezz7@cox.net>
Notes
Notes: svn path=/head/; revision=91464
Diffstat (limited to 'x11-themes/gnome-themes')
-rw-r--r--x11-themes/gnome-themes/Makefile1
-rw-r--r--x11-themes/gnome-themes/files/patch-gtk-themes_Crux_src_crux-gradient.c31
-rw-r--r--x11-themes/gnome-themes/files/patch-gtk-themes_Crux_src_crux-pixmaps.c14
3 files changed, 46 insertions, 0 deletions
diff --git a/x11-themes/gnome-themes/Makefile b/x11-themes/gnome-themes/Makefile
index fa819350a3f7..8c7259b3be41 100644
--- a/x11-themes/gnome-themes/Makefile
+++ b/x11-themes/gnome-themes/Makefile
@@ -7,6 +7,7 @@
PORTNAME= gnome-themes
PORTVERSION= 2.4.1
+PORTREVISION= 1
CATEGORIES= x11-toolkits gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/${PORTNAME}/2.4
diff --git a/x11-themes/gnome-themes/files/patch-gtk-themes_Crux_src_crux-gradient.c b/x11-themes/gnome-themes/files/patch-gtk-themes_Crux_src_crux-gradient.c
new file mode 100644
index 000000000000..9111a7ac593f
--- /dev/null
+++ b/x11-themes/gnome-themes/files/patch-gtk-themes_Crux_src_crux-gradient.c
@@ -0,0 +1,31 @@
+--- gtk-themes/Crux/src/crux-gradient.c.orig Thu Oct 16 20:57:05 2003
++++ gtk-themes/Crux/src/crux-gradient.c Thu Oct 16 21:01:18 2003
+@@ -207,7 +207,7 @@
+ const eazel_engine_gradient *gradient)
+ {
+ int rgb_size = clip_rect->height;
+- guchar *rgb = alloca (rgb_size * 3), *ptr;
++ guchar *rgb = g_malloc (rgb_size * 3), *ptr;
+
+ eazel_engine_fill_gradient_rgb_buffer (gradient, full_rect->height, rgb,
+ clip_rect->y - full_rect->y,
+@@ -239,7 +239,7 @@
+ }
+ else
+ {
+- guchar *xrgb = alloca (clip_rect->width * clip_rect->height * 3);
++ guchar *xrgb = g_malloc (clip_rect->width * clip_rect->height * 3);
+ int x, y;
+ guchar *ptr_in = rgb, *ptr_out = xrgb;
+ for (y = 0; y < clip_rect->height; y++)
+@@ -257,7 +257,10 @@
+ gdk_draw_rgb_image (drawable, gc, clip_rect->x, clip_rect->y,
+ clip_rect->width, clip_rect->height,
+ dither_mode, xrgb, clip_rect->width * 3);
++ g_free (xrgb);
+ }
++
++ g_free (rgb);
+ }
+
+ static void
diff --git a/x11-themes/gnome-themes/files/patch-gtk-themes_Crux_src_crux-pixmaps.c b/x11-themes/gnome-themes/files/patch-gtk-themes_Crux_src_crux-pixmaps.c
new file mode 100644
index 000000000000..7813ce91f8a5
--- /dev/null
+++ b/x11-themes/gnome-themes/files/patch-gtk-themes_Crux_src_crux-pixmaps.c
@@ -0,0 +1,14 @@
+--- gtk-themes/Crux/src/crux-pixmaps.c.orig Thu Oct 16 21:01:59 2003
++++ gtk-themes/Crux/src/crux-pixmaps.c Thu Oct 16 21:02:17 2003
+@@ -340,9 +340,10 @@
+ {
+ GdkPixbuf *pixbuf;
+ size_t len = strlen (*path) + strlen (file) + 2;
+- char *buf = alloca (len);
++ char *buf = g_malloc (len);
+ sprintf (buf, "%s/%s", *path, file);
+ pixbuf = gdk_pixbuf_new_from_file (buf, NULL);
++ g_free (buf);
+ if (pixbuf != 0)
+ return pixbuf;
+ path++;