Hi ports@,

Here is a security diff for optipng, fixing:

- CVE-2017-16938 (Global buffer overflow)
  Details: https://sourceforge.net/p/optipng/bugs/69/

- CVE-2017-1000229 (Integer overflow)
  Details: https://sourceforge.net/p/optipng/bugs/65/

Comments? OK?

Index: Makefile
===================================================================
RCS file: /cvs/ports/graphics/optipng/Makefile,v
retrieving revision 1.3
diff -u -p -r1.3 Makefile
--- Makefile    1 Jul 2016 07:44:19 -0000       1.3
+++ Makefile    8 Dec 2017 21:32:08 -0000
@@ -2,6 +2,7 @@
 
 COMMENT =              lossless PNG optimizer
 DISTNAME =             optipng-0.7.6
+REVISION =             0
 CATEGORIES =           graphics
 
 HOMEPAGE =             http://optipng.sourceforge.net/
Index: patches/patch-src_gifread_gifread_c
===================================================================
RCS file: patches/patch-src_gifread_gifread_c
diff -N patches/patch-src_gifread_gifread_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_gifread_gifread_c 8 Dec 2017 21:32:08 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Fix for CVE-2017-16938 (Global buffer overflow)
+https://sourceforge.net/p/optipng/bugs/69/
+
+Index: src/gifread/gifread.c
+--- src/gifread/gifread.c.orig
++++ src/gifread/gifread.c
+@@ -499,6 +499,8 @@ static int LZWReadByte(int init_flag, int input_code_s
+             *sp++ = table[1][code];
+             if (code == table[0][code])
+                 GIFError("GIF/LZW error: circular table entry");
++            if ((size_t)(sp - stack) >= sizeof(stack) / sizeof(stack[0]))
++                GIFError("GIF/LZW error: circular table");
+             code = table[0][code];
+         }
+ 
Index: patches/patch-src_minitiff_tiffread_c
===================================================================
RCS file: patches/patch-src_minitiff_tiffread_c
diff -N patches/patch-src_minitiff_tiffread_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_minitiff_tiffread_c       8 Dec 2017 21:32:08 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Fix for CVE-2017-1000229 (Integer overflow)
+https://sourceforge.net/p/optipng/bugs/65/
+
+Index: src/minitiff/tiffread.c
+--- src/minitiff/tiffread.c.orig
++++ src/minitiff/tiffread.c
+@@ -350,6 +350,8 @@ minitiff_read_info(struct minitiff_info *tiff_ptr, FIL
+         count = tiff_ptr->strip_offsets_count;
+         if (count == 0 || count > tiff_ptr->height)
+             goto err_invalid;
++        if (count > (size_t)-1 / sizeof(long))
++            goto err_memory;
+         tiff_ptr->strip_offsets = (long *)malloc(count * sizeof(long));
+         if (tiff_ptr->strip_offsets == NULL)
+             goto err_memory;

Reply via email to