From ce4acf471d1c040d053d9f6110ada86ee4af4f82 Mon Sep 17 00:00:00 2001 From: Bob Friesenhahn Date: Thu, 10 Jun 2010 22:53:11 +0000 Subject: * libtiff/tiffiop.h (TIFFSafeMultiply): Work properly if multiplier is zero. --- ChangeLog | 5 ++++ libtiff/tiffiop.h | 4 +-- m4/argz.m4 | 79 ------------------------------------------------------- 3 files changed, 7 insertions(+), 81 deletions(-) delete mode 100644 m4/argz.m4 diff --git a/ChangeLog b/ChangeLog index 60eaae97..f83afe0d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-06-10 Bob Friesenhahn + + * libtiff/tiffiop.h (TIFFSafeMultiply): Work properly if + multiplier is zero. + 2010-06-09 Bob Friesenhahn * libtiff/tif_fax3.c (Fax3SetupState): Yesterday's fix for diff --git a/libtiff/tiffiop.h b/libtiff/tiffiop.h index 4fecb7cd..12321386 100644 --- a/libtiff/tiffiop.h +++ b/libtiff/tiffiop.h @@ -1,4 +1,4 @@ -/* $Id: tiffiop.h,v 1.77 2010-06-09 17:17:13 bfriesen Exp $ */ +/* $Id: tiffiop.h,v 1.78 2010-06-10 22:53:11 bfriesen Exp $ */ /* * Copyright (c) 1988-1997 Sam Leffler @@ -270,7 +270,7 @@ struct tiff { #define TIFFroundup_64(x, y) (TIFFhowmany_64(x,y)*(y)) /* Safe multiply which returns zero if there is an integer overflow */ -#define TIFFSafeMultiply(t,v,m) ((((t)v*m)/(t)m == (t)v) ? (t)v*m : (t)0) +#define TIFFSafeMultiply(t,v,m) ((((t)m != (t)0) && (((t)v*m)/(t)m == (t)v)) ? (t)v*m : (t)0) #define TIFFmax(A,B) ((A)>(B)?(A):(B)) #define TIFFmin(A,B) ((A)<(B)?(A):(B)) diff --git a/m4/argz.m4 b/m4/argz.m4 deleted file mode 100644 index 1f8d67d0..00000000 --- a/m4/argz.m4 +++ /dev/null @@ -1,79 +0,0 @@ -# Portability macros for glibc argz. -*- Autoconf -*- -# -# Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. -# Written by Gary V. Vaughan -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 5 argz.m4 - -AC_DEFUN([gl_FUNC_ARGZ], -[gl_PREREQ_ARGZ - -AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) - -AC_CHECK_TYPES([error_t], - [], - [AC_DEFINE([error_t], [int], - [Define to a type to use for `error_t' if it is not otherwise available.]) - AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h - does not typedef error_t.])], - [#if defined(HAVE_ARGZ_H) -# include -#endif]) - -ARGZ_H= -AC_CHECK_FUNCS([argz_append argz_create_sep argz_insert argz_next \ - argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) - -dnl if have system argz functions, allow forced use of -dnl libltdl-supplied implementation (and default to do so -dnl on "known bad" systems). Could use a runtime check, but -dnl (a) detecting malloc issues is notoriously unreliable -dnl (b) only known system that declares argz functions, -dnl provides them, yet they are broken, is cygwin -dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) -dnl So, it's more straightforward simply to special case -dnl this for known bad systems. -AS_IF([test -z "$ARGZ_H"], - [AC_CACHE_CHECK( - [if argz actually works], - [lt_cv_sys_argz_works], - [[case $host_os in #( - *cygwin*) - lt_cv_sys_argz_works=no - if test "$cross_compiling" != no; then - lt_cv_sys_argz_works="guessing no" - else - lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' - save_IFS=$IFS - IFS=-. - set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` - IFS=$save_IFS - lt_os_major=${2-0} - lt_os_minor=${3-0} - lt_os_micro=${4-0} - if test "$lt_os_major" -gt 1 \ - || { test "$lt_os_major" -eq 1 \ - && { test "$lt_os_minor" -gt 5 \ - || { test "$lt_os_minor" -eq 5 \ - && test "$lt_os_micro" -gt 24; }; }; }; then - lt_cv_sys_argz_works=yes - fi - fi - ;; #( - *) lt_cv_sys_argz_works=yes ;; - esac]]) - AS_IF([test $lt_cv_sys_argz_works = yes], - [AC_DEFINE([HAVE_WORKING_ARGZ], 1, - [This value is set to 1 to indicate that the system argz facility works])], - [ARGZ_H=argz.h - AC_LIBOBJ([argz])])]) - -AC_SUBST([ARGZ_H]) -]) - -# Prerequisites of lib/argz.c. -AC_DEFUN([gl_PREREQ_ARGZ], [:]) -- cgit v1.2.1