diff options
-rw-r--r-- | dev-ml/camlimages/ChangeLog | 7 | ||||
-rw-r--r-- | dev-ml/camlimages/camlimages-3.0.1.ebuild | 58 | ||||
-rw-r--r-- | dev-ml/camlimages/files/camlimages-3.0.1-CVE-2009-2295.patch | 154 | ||||
-rw-r--r-- | dev-ml/camlimages/files/camlimages-3.0.1-lablgtk.patch | 51 |
4 files changed, 6 insertions, 264 deletions
diff --git a/dev-ml/camlimages/ChangeLog b/dev-ml/camlimages/ChangeLog index 0308fb22bd47..1360427422ef 100644 --- a/dev-ml/camlimages/ChangeLog +++ b/dev-ml/camlimages/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for dev-ml/camlimages # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-ml/camlimages/ChangeLog,v 1.27 2010/04/15 14:47:40 ranger Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-ml/camlimages/ChangeLog,v 1.28 2010/04/24 12:20:50 aballier Exp $ + + 24 Apr 2010; Alexis Ballier <aballier@gentoo.org> + -camlimages-3.0.1.ebuild, -files/camlimages-3.0.1-CVE-2009-2295.patch, + -files/camlimages-3.0.1-lablgtk.patch: + remove old 15 Apr 2010; Brent Baude <ranger@gentoo.org> camlimages-3.0.2.ebuild: Marking camlimages-3.0.2 ppc for sec bug 290222 diff --git a/dev-ml/camlimages/camlimages-3.0.1.ebuild b/dev-ml/camlimages/camlimages-3.0.1.ebuild deleted file mode 100644 index 31a37855fc18..000000000000 --- a/dev-ml/camlimages/camlimages-3.0.1.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2009 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-ml/camlimages/camlimages-3.0.1.ebuild,v 1.4 2009/12/26 17:34:19 pva Exp $ - -EAPI=2 - -inherit eutils - -IUSE="doc gif gs gtk jpeg tiff truetype xpm" - -DESCRIPTION="An image manipulation library for ocaml" -HOMEPAGE="http://gallium.inria.fr/camlimages/" -SRC_URI="http://gallium.inria.fr/camlimages/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~amd64 ppc x86" - -RDEPEND=">=dev-lang/ocaml-3.10.2[ocamlopt] - gif? ( media-libs/giflib ) - gtk? ( dev-ml/lablgtk ) - gs? ( app-text/ghostscript-gpl ) - jpeg? ( media-libs/jpeg ) - tiff? ( media-libs/tiff ) - media-libs/libpng - truetype? ( >=media-libs/freetype-2 ) - xpm? ( x11-libs/libXpm ) - " -DEPEND="${DEPEND} - dev-ml/findlib" - -src_prepare() { - epatch "${FILESDIR}/${P}-lablgtk.patch" - epatch "${FILESDIR}/${P}-CVE-2009-2295.patch" -} - -src_configure() { - econf \ - $(use_with gif) \ - $(use_with gs) \ - $(use_with gtk lablgtk2) \ - --without-lablgtk \ - $(use_with jpeg) \ - --with-png \ - $(use_with tiff) \ - $(use_with truetype freetype) \ - $(use_with xpm) -} - -src_compile() { - emake -j1 || die -} - -src_install() { - emake DESTDIR="${D}" ocamlsitelibdir="$(ocamlfind printconf destdir)/${PN}" install || die - dodoc README - use doc && dohtml doc/* -} diff --git a/dev-ml/camlimages/files/camlimages-3.0.1-CVE-2009-2295.patch b/dev-ml/camlimages/files/camlimages-3.0.1-CVE-2009-2295.patch deleted file mode 100644 index c94b9b11672e..000000000000 --- a/dev-ml/camlimages/files/camlimages-3.0.1-CVE-2009-2295.patch +++ /dev/null @@ -1,154 +0,0 @@ -Index: src/gifread.c -=================================================================== ---- src/gifread.c.orig -+++ src/gifread.c -@@ -20,6 +20,8 @@ - #include <caml/memory.h> - #include <caml/fail.h> - -+#include "oversized.h" -+ - #include <stdio.h> - #include <string.h> - -@@ -191,6 +193,9 @@ value dGifGetLine( value hdl ) - - GifFileType *GifFile = (GifFileType*) hdl; - -+ if( oversized( GifFile->Image.Width, sizeof(GifPixelType) ) ){ -+ failwith_oversized("gif"); -+ } - buf = alloc_string( GifFile->Image.Width * sizeof(GifPixelType) ); - - if( DGifGetLine(GifFile, String_val(buf), GifFile->Image.Width ) -Index: src/jpegread.c -=================================================================== ---- src/jpegread.c.orig -+++ src/jpegread.c -@@ -20,6 +20,8 @@ - #include <caml/memory.h> - #include <caml/fail.h> - -+#include "oversized.h" -+ - #include <stdio.h> - #include <string.h> - -@@ -156,6 +158,12 @@ read_JPEG_file (value name) - */ - /* JSAMPLEs per row in output buffer */ - -+ if( oversized(cinfo.output_width, cinfo.output_components) ){ -+ jpeg_destroy_decompress(&cinfo); -+ fclose(infile); -+ failwith_oversized("jpeg"); -+ } -+ - row_stride = cinfo.output_width * cinfo.output_components; - - /* Make a one-row-high sample array that will go away when done with image */ -@@ -177,6 +185,12 @@ read_JPEG_file (value name) - jpeg_read_scanlines(&cinfo, buffer + cinfo.output_scanline, 1); - } - -+ if( oversized(row_stride, cinfo.output_height) ){ -+ jpeg_destroy_decompress(&cinfo); -+ fclose(infile); -+ failwith_oversized("jpeg"); -+ } -+ - { - CAMLlocalN(r,3); - r[0] = Val_int(cinfo.output_width); -@@ -352,6 +366,7 @@ value open_jpeg_file_for_read_start( jpe - - { - CAMLlocalN(r,3); -+ // CR jfuruse: integer overflow - r[0] = Val_int(cinfop->output_width); - r[1] = Val_int(cinfop->output_height); - r[2] = alloc_tuple(3); -Index: src/oversized.h -=================================================================== ---- /dev/null -+++ src/oversized.h -@@ -0,0 +1,9 @@ -+#include <limits.h> -+/* Test if x or y are negative, or if multiplying x * y would cause an -+ * arithmetic overflow. -+ */ -+#define oversized(x, y) \ -+ ((x) < 0 || (y) < 0 || ((y) != 0 && (x) > INT_MAX / (y))) -+ -+#define failwith_oversized(lib) \ -+ failwith("#lib error: image contains oversized or bogus width and height"); -Index: src/pngread.c -=================================================================== ---- src/pngread.c.orig -+++ src/pngread.c -@@ -17,6 +17,8 @@ - - #include <png.h> - -+#include "oversized.h" -+ - #include <caml/mlvalues.h> - #include <caml/alloc.h> - #include <caml/memory.h> -@@ -81,6 +83,9 @@ value read_png_file_as_rgb24( name ) - png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, - &interlace_type, NULL, NULL); - -+ if (oversized (width, height)) -+ failwith_oversized("png"); -+ - if ( color_type == PNG_COLOR_TYPE_GRAY || - color_type == PNG_COLOR_TYPE_GRAY_ALPHA ) { - png_set_gray_to_rgb(png_ptr); -@@ -102,10 +107,16 @@ value read_png_file_as_rgb24( name ) - - rowbytes = png_get_rowbytes(png_ptr, info_ptr); - -+ if (oversized (rowbytes, height)) -+ failwith_oversized("png"); -+ - { - int i; - png_bytep *row_pointers; - -+ if (oversized (sizeof (png_bytep), height)) -+ failwith_oversized("png"); -+ - row_pointers = (png_bytep*) stat_alloc(sizeof(png_bytep) * height); - - res = alloc_tuple(3); -@@ -235,6 +246,9 @@ value read_png_file( name ) - png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, - &interlace_type, NULL, NULL); - -+ if (oversized (width, height)) -+ failwith_oversized("png"); -+ - if ( color_type == PNG_COLOR_TYPE_GRAY || - color_type == PNG_COLOR_TYPE_GRAY_ALPHA ) { - png_set_gray_to_rgb(png_ptr); -@@ -251,6 +265,9 @@ value read_png_file( name ) - - rowbytes = png_get_rowbytes(png_ptr, info_ptr); - -+ if (oversized (rowbytes, height)) -+ failwith_oversized("png"); -+ - /* - fprintf(stderr, "pngread.c: actual loading\n"); fflush(stderr); - */ -@@ -259,6 +276,9 @@ fprintf(stderr, "pngread.c: actual loadi - png_bytep *row_pointers; - char mesg[256]; - -+ if (oversized (sizeof (png_bytep), height)) -+ failwith_oversized("png"); -+ - row_pointers = (png_bytep*)stat_alloc(sizeof(png_bytep) * height); - res = alloc_tuple(3); - diff --git a/dev-ml/camlimages/files/camlimages-3.0.1-lablgtk.patch b/dev-ml/camlimages/files/camlimages-3.0.1-lablgtk.patch deleted file mode 100644 index 1b29dd509ed2..000000000000 --- a/dev-ml/camlimages/files/camlimages-3.0.1-lablgtk.patch +++ /dev/null @@ -1,51 +0,0 @@ -Index: camlimages-3.0.1/examples/liv/liv.ml -=================================================================== ---- camlimages-3.0.1.orig/examples/liv/liv.ml -+++ camlimages-3.0.1/examples/liv/liv.ml -@@ -12,6 +12,10 @@ - - (* $Id: camlimages-3.0.1-lablgtk.patch,v 1.1 2009/07/24 20:51:30 aballier Exp $ *) - -+ -+module D = Display -+open D -+ - open Images;; - open OImages;; - -@@ -21,14 +25,13 @@ open GMain;; - - open Livmisc;; - open Gui;; --open Display;; - open Tout;; - - open Gc;; - - exception Skipped;; - --let base_filters = ref ([] : Display.filter list);; -+let base_filters = ref ([] : D.filter list);; - - let r = Gc.get () in - r.max_overhead <- 0; Gc.set r; -@@ -52,15 +55,15 @@ Arg.parse [ - "-root", - Arg.String - (function -- | "center" -> Display.root_mode := `CENTER -- | "random" -> Display.root_mode := `RANDOM -+ | "center" -> D.root_mode := `CENTER -+ | "random" -> D.root_mode := `RANDOM - | _ -> raise (Failure "root mode")), - ": on root [center|random]"; - "-transition", - Arg.String - (function -- | "myst" -> Display.transition := `MYST -- | "transparent" -> Display.transition := `TRANSPARENT -+ | "myst" -> D.transition := `MYST -+ | "transparent" -> D.transition := `TRANSPARENT - | _ -> raise (Failure "transition")), - ": transition [myst|transparent]"; - "-transparentborder", |