diff --git a/multimedia/graphics/netpbm/actions.py b/multimedia/graphics/netpbm/actions.py index 655335e033..c750f795d9 100644 --- a/multimedia/graphics/netpbm/actions.py +++ b/multimedia/graphics/netpbm/actions.py @@ -2,46 +2,28 @@ # -*- coding: utf-8 -*- # # Licensed under the GNU General Public License, version 3. -# See the file http://www.gnu.org/licenses/gpl.txt +# See the file https://www.gnu.org/licenses/gpl-3.0.txt -from pisi.actionsapi import autotools -from pisi.actionsapi import pisitools -from pisi.actionsapi import shelltools -from pisi.actionsapi import get -import os - - -def makedepends(d): - for root, dirs, files in os.walk(d): - for name in files: - if name == "Makefile": - shelltools.touch(os.path.join(root, "depend.mk")) +from pisi.actionsapi import shelltools, autotools, pisitools, get def setup(): - pisitools.dosed("config.mk", "^STRIPFLAG.*=.*", "STRIPFLAG = ") + shelltools.copy("config.mk.in", "config.mk") - # force external jasper usage - pisitools.echo("config.mk", "JASPERLIB = -ljasper") - pisitools.echo("config.mk", "JASPERHDR_DIR = /usr/include/jasper") + shelltools.system("sed -i 's|misc|share/netpbm|' common.mk") + shelltools.system("sed -e 's|/sharedlink|/lib|' -i lib/Makefile") - makedepends("./") + shelltools.echo("config.mk", "STATICLIB_TOO=N") + shelltools.echo("config.mk", "CFLAGS_SHLIB += -fPIC") + shelltools.echo("config.mk", "TIFFLIB = libtiff.so") + shelltools.echo("config.mk", "JPEGLIB = libjpeg.so") + shelltools.echo("config.mk", "PNGLIB = libpng.so") + shelltools.echo("config.mk", "ZLIB = libz.so") def build(): - autotools.make('CFLAGS="%s -fPIC -O3 -ffast-math -pedantic -fno-common" LDFLAGS="%s" -j1' % (get.CFLAGS(), get.LDFLAGS())) + autotools.make("CFLAGS+='%s'" % get.CFLAGS()) def install(): - pisitools.dodir("/") - autotools.make('-j1 package pkgdir=%s/usr' % get.installDIR()) + a = "install-run install-dev" + autotools.rawInstall("pkgdir=%s/usr %s" % (get.installDIR(), a)) - pisitools.remove("/usr/bin/manweb") - - for data in ["VERSION","pkginfo","README","config_template"]: - pisitools.remove("/usr/%s" % data) - - pisitools.domove("/usr/man", "/usr/share") - - # remove conflicts with jbigkit - for i in ["pbm", "pgm"]: - pisitools.remove("/usr/share/man/man5/%s.5" % i) - - pisitools.dodoc("README", "doc/*LICENSE*") + pisitools.dodoc("doc/copyright_summary", "doc/GPL_LICENSE.txt") diff --git a/multimedia/graphics/netpbm/files/config.mk b/multimedia/graphics/netpbm/files/config.mk deleted file mode 100644 index 9f7089a539..0000000000 --- a/multimedia/graphics/netpbm/files/config.mk +++ /dev/null @@ -1,661 +0,0 @@ -####This file was automatically created by 'configure.' -####Many variables are set twice -- a generic setting, then -####a system-specific override at the bottom of the file. -#### -# This is a make file inclusion, to be included in all the Netpbm make -# files. - -# This file is meant to contain variable settings that customize the -# build for a particular target system configuration. - -# The distribution contains the file config.mk.in. You edit -# config.mk.in in ways relevant to your particular environment -# to create config.mk. The "configure" program will do this -# for you in simple cases. - -# Some of the variables that the including make file must set for this -# file to work: -# -# SRCDIR: The directory at the top of the Netpbm source tree. Note that -# this is typically a relative directory, and it must be relative to the -# make file that includes this file. - -DEFAULT_TARGET = nonmerge -#DEFAULT_TARGET = merge - -# Fiasco has some special requirements that make it fail to compile on -# some systems, and since it isn't very important, just set this to "N" -# and skip it on those systems unless you want to debug it and fix it. -# OpenBSD: -#BUILD_FIASCO = N -BUILD_FIASCO = Y - -# The following are commands for the build process to use. These values -# do not get built into anything. - -# The C compiler (including macro preprocessor) -#CC = gcc -# Note that 'cc' is usually an alias for whatever is the main compiler -# on a system, e.g. the GNU Compiler on Linux. -CC = cc - -# The linker. -LD = $(CC) -#LD = ld -#Tru64: -#LD = cc -#LD = gcc - -#If the linker identified above is a compiler that invokes a linker -#(as in 'cc foo.o -o foo'), set LINKERISCOMPILER. The main difference is -#that we expect a compiler to take linker options in the '-Wl,-opt1,val1' -#syntax whereas the actual linker would take '-opt1 val1'. -LINKERISCOMPILER=Y -#If $(LD) is 'ld': -#LINKERISCOMPILER=N - -#LINKER_CAN_DO_EXPLICIT_LIBRARY means the linker specified above can -#take a library as just another link object argument, as in 'ld -#pnmtojpeg.o /usr/local/lib/libjpeg.so ...' as opposed to requiring a -#-l option as in 'ld pnmtojpeg.o -L/usr/local/lib -l jpeg'. -#This variable controls how 'libopt' gets built. Note that with some -#linkers, you can specify a shared library explicitly, but then it has -#to live in that exact place at run time. That's not good enough for us. - -LINKER_CAN_DO_EXPLICIT_LIBRARY=N -#GNU: -#LINKER_CAN_DO_EXPLICIT_LIBRARY=Y - -# This is the name of the header file that declares the types -# uint32_t, etc. This name is used as #include $(INTTYPES_H) . -# Set to null if the types come automatically without including anything. - -# We have a report (2005.09.17) that on IRIX 5.3 with the native IDO -# cc, inttypes.h and sys/types.h conflict (and Netpbm programs include -# sys/types for other things), so for that environment, -# won't work, but "inttypes_netpbm.h" might. - -INTTYPES_H = -# Linux libc5: -#INTTYPES_H = -# Solaris: -# Solaris has , but it doesn't define int_fast2_t, etc. -#INTTYPES_H = "inttypes_netpbm.h" -# Others: -#INTTYPES_H = -#INTTYPES_H = -# The automatically generated Netpbm version: -#INTTYPES_H = "inttypes_netpbm.h" - -# HAVE_INT64 tells whether, assuming you include the header indicated by -# INTTYPES_H, you have the int64_t type and related stuff. (If you don't -# the build will omit certain code that does 64 bit computations). -HAVE_INT64 = Y -#HAVE_INT64 = N - -# CC and LD are for building the Netpbm programs, which are not necessarily -# intended to run on the same system on which Make is running. But when we -# build a build tool such as Libopt, it is meant to run only on the same -# system on which the Make is running. The variables below define programs -# to use to compile and link build tools. -CC_FOR_BUILD = $(CC) -LD_FOR_BUILD = $(LD) -CFLAGS_FOR_BUILD = $(CFLAGS) -LDFLAGS_FOR_BUILD = $(LDFLAGS) - -# MAKE is set automatically by Make to what was used to invoke Make. - -INSTALL = $(SRCDIR)/buildtools/install.sh -#Solaris: -#INSTALL = /usr/ucb/install -#Tru64: -#INSTALL = installbsd -#OSF1: -#INSTALL = $(SRCDIR)/buildtools/installosf -#Red Hat Linux: -#INSTALL = install - -# STRIPFLAG is the option you pass to the above install program to make it -# strip unnecessary information out of binaries. -STRIPFLAG = -s -# If you don't want to strip the binaries, just leave it null: -#STRIPFLAG = - -SYMLINK = ln -s -# At least some Windows environments don't have any concept of symbolic -# links, but direct copies are usually a passable alternative. -#SYMLINK = cp - -#MANPAGE_FORMAT is "nroff" or "cat". It determines in what format the -#pointer man pages are installed (ready to nroff, or ready to cat). -#A pointer man pages is just a single-paragraph pages that tells you there is -#no man page for the program, to look at the HTML documentation instead. -MANPAGE_FORMAT = nroff -#MANPAGE_FORMAT = cat - -AR = ar -RANLIB = ranlib -# IRIX, SCO don't have Ranlib: -#RANLIB = true - -# LEX is the beginning of a shell command that runs a Lex-like -# pattern matcher generator. Null string means there isn't any such -# command. That means the build will skip parts that need one. - -LEX = flex -# Solaris: -# LEX = flex -e -# Windows Mingw: -# LEX = -# -# LEX = lex - -# C compiler options - -# gcc: -# -ansi and -Werror should work too, but are not included -# by default because there's no point in daring the build to fail. -# -pedantic isn't a problem because it causes at worst a warning. -#CFLAGS = -O3 -ffast-math -pedantic -fno-common \ -# -Wall -Wno-uninitialized -Wmissing-declarations -Wimplicit \ -# -Wwrite-strings -Wmissing-prototypes -Wundef -# The merged programs have a main_XXX subroutine instead of main(), -# which would cause a warning with -Wmissing-declarations or -# -Wmissing-prototypes. -#CFLAGS_MERGE = -Wno-missing-declarations -Wno-missing-prototypes -# A user of DEC Tru64 4.0F in May 2000 needed -DLONG_32 for ppmtompeg, -# but word size-sensitive code was removed from parallel.c in September 2004. -# A user of Tru64 5.1A in July 2003 needed NOT to have -DLONG_32. In -# theory, you need this if on your system, long is 32 bits and int is not. -# But it may be completely irrelevant today. -#Tru64: -#CFLAGS = -O2 -std1 -DLONG_32 -#CFLAGS = -O2 -std1 -#AIX: -#CFLAGS= -O3 -#HP-UX: -#CFLAGS= -O3 -fPIC -#IRIX: -#CFLAGS= -n32 -O3 -#Amiga with GNU compiler: -#CFLAGS= -m68020-60 -ffast-math -mstackextend -# You can add -noixemul for Amiga and successfully compile most of the -# programs. (Of the remaining ones, if you can supply your own strtod() -# function, most of them will build with -noixemul). So try building -# with 'make --keep-going CADD=-noixemul' first, then just 'make' to build -# everything that failed for lack of the ixemul library in the first step. -# That way, the parts that don't required the ixemul library won't indicate -# a dependency on it. -#OpenBSD: -#CFLAGS = -I/usr/local/include - -# EXE is a suffix that the linker puts on any executable it generates. -# In cygwin, this is .exe and most programs deal with its existence without -# us having to know about it. Some don't though, so set this: - -EXE = -#Cygwin, DJGPP/Windows: -#EXE = .exe - -# linker options. - -# LDFLAGS is often set as an environment variable; A setting here overrides -# it. So either make sure you want to override it, or do a "LDFLAGS +=" here. - -# LDFLAGS is usually not the right place for a -L option, because we put -# LDFLAGS _before_ our own -L options, so it would cancel out our -# specific selection of libraries. For example, if you say -# LDFLAGS=/usr/local/lib and an old copy of the libnetpbm is in -# /usr/local/lib, then you'd be linking against that old copy instead of -# the copy you just built, which is located by a -L option later on the -# link command. LIBS is the right variable for adding -L options. LIBS -# goes after any of our make files' own -L options. - -# Eunice users may want to use -noshare so that the executables can -# run standalone: -#LDFLAGS += -noshare -#Tru64: -# Russ Allberry says on 2001.06.09 that -oldstyle_liblookup may be necessary -# to keep from finding an ancient system libjpeg.so that isn't compatible with -# NetPBM. Michael Long found that /usr/local/lib is not in the default -# search path, or not soon enough, and he was getting an old libjpeg that -# caused all the jpeg symbol references to be unresolved. He had installed -# a new libjpeg in /usr/local/lib. -#LDFLAGS += -call_shared -oldstyle_liblookup -L/usr/local/lib -#AIX: -#LDFLAGS += -L /usr/pubsw/lib -#HP-UX: -#LDFLAGS += -Wl,+b,/usr/pubsw/lib -#IRIX: -#LDFLAGS += -n32 - -# Linker options for created Netpbm shared libraries. - -# Here, $(SONAME) resolves to the soname for the shared library being created. -# The following are gcc options. This works on GNU libc systems. -LDSHLIB = -shared -Wl,-soname,$(SONAME) -# You need -nostart instead of -shared on BeOS. Though the BeOS compiler is -# ostensibly gcc, it has the -nostart option, which is not mentioned in gcc -# documentation and doesn't exist in at least one non-BeOS installation. -# BeOS doesn't have sonames built in. -#LDSHLIB = -nostart -#LDSHLIB = -G -# Solaris, SunOS with GNU Ld, SCO: -# These systems have no soname option. -#LDSHLIB = -shared -# Solaris with Sun Ld: -#LDSHLIB = -Wl,-Bdynamic,-G,-h,$(SONAME) -#Tru64: -#LDSHLIB = -shared -expect_unresolved "*" -#IRIX: -#LDSHLIB = -shared -n32 -#AIX GNU compiler/linker: -#LDSHLIB = -shared -#AIX Visual Age C: -#LDSHLIB = -qmkshrobj -#Mac OSX: -# According to experiments done by Peter A Crowley in May 2007, if -# libnetpbm goes in a standard place such as /usr/local/lib, -# programs need not be built with libnetpbm's location included. -# But if it goes elsewhere, the link-editor must include the -# location in the executable. It finds the runtime location by -# looking inside the library. The information in the library -# comes from the install_name option with which the library was -# built. It's an alternative to the -rpath option on other systems. -#LDSHLIB=-dynamiclib -#LDSHLIB=-dynamiclib -install_name $(NETPBMLIB_RUNTIME_PATH)/libnetpbm.$(MAJ).dylib - -# LDRELOC is the command to combine two .o files (relocateable object files) -# into a single .o file that can later be linked into something else. NONE -# means no such command is available. - -LDRELOC = NONE -# GNU Ld: -# Older GNU Ld misspells the option as --relocateable. Newer GNU Ld -# correctly spells it --relocatable. The abbreviation --reloc works on -# both. -#LDRELOC = ld --reloc -#LDRELOC = ld -r - - -# On older systems, you have to make shared libraries out of position -# independent code, so you need -fpic or fPIC here. (The rule is: if -# -fpic works, use it. If it bombs, go to fPIC). On newer systems, -# it isn't necessary, but can save real memory at the expense of -# execution speed. Without position independent code, the library -# loader may have to patch addresses into the executable text. On an -# older system, this would cause a program crash because the loader -# would be writing into read-only shared memory. But on newer -# systems, the system silently creates a private mapping of the page -# or segment being modified (the "copy on write" phenomenon). So it -# needs its own private real page frame. In one experiment, A second -# copy of Pbmtext used 16K less real memory when built with -fpic than -# when built without. 2001.06.02. - -# We have seen -fPIC required on IA64 and AMD64 machines (GNU -# compiler/linker). Build-time linking fails without it. I don't -# know why -- history seems to be repeating itself. 2005.02.23. - -CFLAGS_SHLIB = -# Gcc: -#CFLAGS_SHLIB = -fpic -#CFLAGS_SHLIB = -fPIC -# Sun compiler: -#CFLAGS_SHLIB = -Kpic -#CFLAGS_SHLIB = -KPIC - -# SHLIB_CLIB is the link option to include the C library in a shared library, -# normally "-lc". On typical systems, this serves no purpose. On some, -# though, it causes information about which C library to use to be recorded -# in the shared library and thus choose the correct library among several or -# avoid using an incompatible one. But on some systems, the link fails. -# On 2002.09.30, "John H. DuBois III" reports that on -# SCO OpenServer, he gets the following error message with -lc: -# -# -lc; relocations referenced ; from file(s) /usr/ccs/lib/libc.so(random.o); -# fatal error: relocations remain against allocatable but non-writable -# section: ; .text - -SHLIB_CLIB = -lc -# SCO: -#SHLIB_CLIB = - -# On some systems you have to build into an executable the list of -# directories where its dynamically linked libraries can be found at -# run time. This is typically done with a -R or -rpath linker -# option. Even on systems that don't require it, you might prefer to do -# that rather than set up environment variables or configuration files -# to tell the system where the libraries are. A "Y" here means to put -# the directory information in the executable at link time. - -NEED_RUNTIME_PATH = N -# Solaris, SunOS, NetBSD, AIX: -#NEED_RUNTIME_PATH = Y - -# RPATHOPTNAME is the option you use on the link command to specify -# a runtime search path for a shared library. It is meaningless unless -# NEED_RUNTIME_PATH is Y. -RPATHOPTNAME = -rpath - -# The following variables tell where your various libraries on which -# Netpbm depends live. The LIBxxx variable is a full file -# specification of the link library (not necessarily the library used -# at run time). e.g. "/usr/local/lib/graphics/libjpeg.so". It usually -# doesn't matter if the library prefix and suffix are right -- you can -# use "lib" and ".so" or ".a" regardless of what your system actually -# uses because these just turn into "-L" and "-l" linker options -# anyway. ".a" implies a static library for some purposes, though. -# If you don't have the library in question, use a value of NONE for -# LIBxxx and the build will simply skip the programs that require that -# library. If the library is in your linker's (or the Netpbm build's) -# default search path, leave off the directory part, e.g. "libjpeg.so". - -# The xxxHDR_DIR variable is the directory in which the interface -# headers for the library live (e.g. /usr/include). If they are in your -# compiler's default search path, set this variable to null. - -# This is where the Netpbm shared libraries will reside when Netpbm is -# fully installed. In some configurations, the Netpbm builder builds -# this information into the Netpbm executables. This does NOT affect -# where the Netpbm installer installs the libraries. A null value -# means the libraries are in a default search path used by the runtime -# library loader. -NETPBMLIB_RUNTIME_PATH = -#NETPBMLIB_RUNTIME_PATH = /usr/lib/netpbm - -# The TIFF library. See above. If you want to build the tiff -# converters, you must have the tiff library already installed. - -TIFFLIB = NONE -TIFFHDR_DIR = - -#TIFFLIB = libtiff.so -#TIFFHDR_DIR = /usr/include/libtiff -#NetBSD: -#TIFFLIB = $(LOCALBASE)/lib/libtiff.so -#TIFFHDR_DIR = $(LOCALBASE)/include -# OSF, Tru64: -#TIFFLIB = /usr/local1/DEC/lib/libtiff.so -#TIFFHDR_DIR = /usr/local1/DEC/include - -# Some TIFF libraries do Jpeg and/or Z (flate) compression and thus any -# program linked with the TIFF library needs a Jpeg and/or Z library. -# Some TIFF libraries have such library statically linked in, but others -# need it to be dynamically linked at program load time. -# Make this 'N' if youf TIFF library doesn't need such dynamic linking. -# As of 2005.01, the most usual build of the TIFF library appears to require -# both. -TIFFLIB_NEEDS_JPEG = Y -TIFFLIB_NEEDS_Z = Y - -# The JPEG library. See above. If you want to build the jpeg -# converters you must have the jpeg library already installed. - -# Tiff files can use JPEG compression, so the Tiff library can reference -# the JPEG library. If your Tiff library references a dynamic JPEG -# library, you must specify at least JPEGLIB here, or the Tiff -# converters will not build. Note that your Tiff library may have the -# JPEG stuff statically linked in, in which case you won't need -# JPEGLIB in order to build the Tiff converters. - -JPEGLIB = NONE -JPEGHDR_DIR = -#JPEGLIB = libjpeg.so -#JPEGHDR_DIR = /usr/include/jpeg -# Netbsd: -#JPEGLIB = ${LOCALBASE}/lib/libjpeg.so -#JPEGHDR_DIR = ${LOCALBASE}/include -# OSF, Tru64: -#JPEGLIB = /usr/local1/DEC/libjpeg.so -#JPEGHDR_DIR = /usr/local1/DEC/include -# Typical: -#JPEGLIB = /usr/local/lib/libjpeg.so -#JPEGHDR_DIR = /usr/local/include -# Don't build JPEG stuff: -#JPEGLIB = NONE - - -# The PNG library. See above. If you want to build the PNG -# converters you must have the PNG library already installed. - -# The PNG library, by convention starting around April 2002, gets installed -# with names that include a version number, such as libpng10.a and header -# files in /usr/include/libpng10. But there is conventionally an unnumbered -# alias (e.g. libpng.a, /usr/include/libpng) for the preferred version. -# -# Recent versions of the library (since some time in the 2002-2006 period) -# have an associated 'libpng-config' that tells how to link it. The make -# files will use that program if it exists (must be in the PATH). In that -# case, PNGLIB and PNGHDR_DIR are irrelevant, but PNGVER is still meaningful, -# because the make file runs 'libpng$(PNGVER)-config'. - -PNGLIB = NONE -PNGHDR_DIR = -PNGVER = -#PNGLIB = libpng$(PNGVER).so -#PNGHDR_DIR = /usr/include/libpng$(PNGVER) -# NetBSD: -#PNGLIB = $(LOCALBASE)/lib/libpng$(PNGVER).so -#PNGHDR_DIR = $(LOCALBASE)/include -# OSF/Tru64: -#PNGLIB = /usr/local1/DEC/lib/libpng$(PNGVER).so -#PNGHDR_DIR = /usr/local1/DEC/include - -# The zlib compression library. See above. You need it to build -# anything that needs the PNG library (see above). If you selected -# NONE for the PNG library, it doesn't matter what you specify here -- -# it won't get used. -# -# If you have 'libpng-config' (see above), these are irrelevant. - -ZLIB = NONE -ZHDR_DIR = -#ZLIB = libz.so - -# The JBIG lossless image compression library (aka JBIG-KIT): - -JBIGLIB = $(BUILDDIR)/converter/other/jbig/libjbig.a -JBIGHDR_DIR = $(SRCDIR)/converter/other/jbig - -# The Jasper JPEG-2000 image compression library (aka JasPer): -JASPERLIB = $(INTERNAL_JASPERLIB) -JASPERHDR_DIR = $(INTERNAL_JASPERHDR_DIR) -# JASPERDEPLIBS is the libraries (-l options or file names) on which -# The Jasper library depends -- i.e. what you have to link into any -# executable that links in the Jasper library. -JASPERDEPLIBS = -#JASPERDEPLIBS = -ljpeg - -# And the Utah Raster Toolkit (aka URT aka RLE) library: - -URTLIB = $(BUILDDIR)/urt/librle.a -URTHDR_DIR = $(SRCDIR)/urt - -# The X11 library has facilities for talking to an X Window System -# server. It is required by Pamx. - -X11LIB = NONE -X11HDR_DIR = - -#X11LIB = /usr/lib/libX11.so -#X11HDR_DIR = - -# The Linux SVGA library (Svgalib) is a facility for displaying graphics -# on the Linux console. It is required by Ppmsvgalib. - -LINUXSVGALIB = NONE -LINUXSVGAHDR_DIR = - -#LINUXSVGALIB = /usr/lib/libvga.so -#LINUXSVGAHDR_DIR = /usr/include/vgalib - -# If you don't want any network functions, set OMIT_NETWORK to "y". -# The only thing that requires network functions is the option in -# ppmtompeg to run it on multiple computers simultaneously. On some -# systems network functions don't work or we haven't figured out how to -# make them work, or they just aren't worth the effort. -OMIT_NETWORK = -#DJGPP/Windows, Tru64: -# (there's some minor header problem that prevents network functions from -# building on Tru64 2000.10.06) -#OMIT_NETWORK = y - -# These are -l options to link in the network libraries. Often, these are -# built into the standard C library, so this can be null. This is irrelevant -# if OMIT_NETWORK is "y". - -NETWORKLD = -# Solaris, SunOS: -#NETWORKLD = -lsocket -lnsl -# SCO: -#NETWORKLD = -lsocket, -lresolv - -VMS = -#VMS: -#VMS = yes - -# DONT_HAVE_PROCESS_MGMT is Y if this system doesn't have the usual -# Unix process management stuff - fork, wait, etc. N for a regular Unix -# system. -DONT_HAVE_PROCESS_MGMT = N - -# The following variables are used only by 'make install' (and the -# variants of it). Paths here don't, for example, get built into any -# programs. - -# This is where everything goes when you do 'make package', unless you -# override it by setting 'pkgdir' on the Make command line. -PKGDIR_DEFAULT = /tmp/netpbm - -# Subdirectory of the package directory ($(pkgdir)) in which man pages -# go. -PKGMANDIR = man - -# File permissions for installed files. -# Note that on some systems (e.g. Solaris), 'install' can't use the -# mnemonic permissions - you have to use octal. - -# binaries (pbmmake, etc) -INSTALL_PERM_BIN = 755 # u=rwx,go=rx -# shared libraries (libpbm.so, etc) -INSTALL_PERM_LIBD = 755 # u=rwx,go=rx -# static libraries (libpbm.a, etc) -INSTALL_PERM_LIBS = 644 # u=rw,go=r -# header files (pbm.h, etc) -INSTALL_PERM_HDR = 644 # u=rw,go=r -# man pages (pbmmake.1, etc) -INSTALL_PERM_MAN = 644 # u=rw,go=r -# data files (pnmtopalm color maps, etc) -INSTALL_PERM_DATA = 644 # u=rw,go=r - -# Specify the suffix that want the man pages to have. - -SUFFIXMANUALS1 = 1 -SUFFIXMANUALS3 = 3 -SUFFIXMANUALS5 = 5 - -#NETPBMLIBTYPE tells the kind of libraries that will get built to hold the -#Netpbm library functions. The value is used only in make file tests. -# "unixshared" means a unix-style shared library, typically named like -# libxyz.so.2.3 -NETPBMLIBTYPE = unixshared -# "unixstatic" means a unix-style static library, (like libxyz.a) -#NETPBMLIBTYPE = unixstatic -# "dll" means a Windows DLL shared library -#NETPBMLIBTYPE = dll -# "dylib" means a Darwin/Mac OS shared library -#NETPBMLIBTYPE = dylib - -#NETPBMLIBSUFFIX is the suffix used on whatever kind of library is -#selected above. All this is used for is to construct library names. -#The make files never examine the actual value. -NETPBMLIBSUFFIX = so - -# "a" is the suffix for unix-style static libraries. It is also -# traditionally used for shared libraries on AIX. The Visual Age C -# manual says sometimes .so works on AIX, and GNU software for AIX -# 5.1.0 does indeed use it. In our experiments, it works fine if you -# name the library file explicitly on the link, but isn't in the -l -# search order. If you name the library explicitly on the link, the -# library must live in exactly the same position at run time, so we -# can't use that. Therefore, you cannot build both static and shared -# libraries with AIX. You have to choose. -#NETPBMLIBSUFFIX = a -# For HP-UX shared libraries: -#NETPBMLIBSUFFIX = sl -# Darwin/Mac OS shared library: -#NETPBMLIBSUFFIX = dylib -# Windows shared library: -#NETPBMLIBSUFFIX = dll - -#STATICLIB_TOO is "y" to signify that you want a static library built -#and installed in addition to whatever library type you specified by -#NETPBMLIBTYPE. If NETPBMLIBTYPE specified a static library, -#STATICLIB_TOO simply has no effect. -STATICLIB_TOO = y -#STATICLIB_TOO = n - -#STATICLIBSUFFIX is the suffix that static libraries have. It's -#meaningless if you aren't building static libraries. -STATICLIBSUFFIX = a - -#SHLIBPREFIXLIST is a blank-delimited list of prefixes that a filename -#of a shared library may have on this system. Traditionally, it's -#just "lib", as in libc or libnetpbm. On Windows, though, varying -#prefixes are used when multiple alternative forms of a library are -#available. The first prefix in this list is what we use to name the -#Netpbm shared libraries. -# -# This variable controls how 'libopt' gets built. -# -SHLIBPREFIXLIST = lib -#Cygwin: -#SHLIBPREFIXLIST = cyg lib - -NETPBMSHLIBPREFIX = $(firstword $(SHLIBPREFIXLIST)) - -#DLLVER is used to version the DLLs built on cygwin or other -#windowsish platforms. We can't add this to LIBROOT, or we'd -#version the static libs (which is bad). We can't add this -#at the end of the name (like unix does with so numbers) because -#windows will only load dlls whose name ends in "dll". So, -#we have this variable, which becomes the end of the library "root" name -#for DLLs only. -# -# This variable controls how 'libopt' gets built. -# -DLLVER = -#Cygwin -#DLLVER = $(NETPBM_MAJOR_RELEASE) - -#NETPBM_DOCURL is the URL of the main documentation page for Netpbm. -#This is a directory which contains a file for each Netpbm program, -#library, and file type. E.g. The documentation for jpegtopnm might be in -#http://netpbm.sourceforge.net/doc/jpegtopnm.html . This value gets -#installed in the man pages (which say no more than to read the webpage) -#and in the Webman netpbm.url file. -NETPBM_DOCURL = http://netpbm.sourceforge.net/doc/ -#For a system with no web access, but a local copy of the doc: -#NETPBM_DOCURL = file:/usr/doc/netpbm/ - - - - - -####Lines above were copied from config.mk.in by 'configure'. -####Lines below were added by 'configure' based on the GNU platform. -DEFAULT_TARGET = nonmerge -NETPBMLIBTYPE=unixshared -NETPBMLIBSUFFIX=so -STATICLIB_TOO=n -CFLAGS = -O3 -ffast-math -pedantic -fno-common -Wall -Wno-uninitialized -Wmissing-declarations -Wimplicit -Wwrite-strings -Wmissing-prototypes -Wundef -CFLAGS_MERGE = -Wno-missing-declarations -Wno-missing-prototypes -LDRELOC = ld --reloc -LINKER_CAN_DO_EXPLICIT_LIBRARY=Y -LINKERISCOMPILER = Y -CFLAGS_SHLIB += -fPIC -TIFFLIB = libtiff.so -JPEGLIB = libjpeg.so -ZLIB = libz.so -X11LIB = libX11.so -NETPBM_DOCURL = http://netpbm.sourceforge.net/doc/ diff --git a/multimedia/graphics/netpbm/files/library-link.patch b/multimedia/graphics/netpbm/files/library-link.patch deleted file mode 100644 index 280113d3a6..0000000000 --- a/multimedia/graphics/netpbm/files/library-link.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff -ur advanced.orig/common.mk advanced/common.mk ---- advanced.orig/common.mk 2012-12-31 04:15:55.000000000 +0200 -+++ advanced/common.mk 2013-05-17 13:54:18.051579812 +0300 -@@ -465,7 +465,7 @@ - install.data: $(DATAFILES:%=%_installdata) $(SUBDIRS:%=%/install.data) - - .PHONY: $(DATAFILES:%=%_installdata) --$(DATAFILES:%=%_installdata): $(PKGDIR)/misc -+$(DATAFILES:%=%_installdata): $(PKGDIR)/share/netpbm - $(INSTALL) -c -m $(INSTALL_PERM_DATA) \ - $(SRCDIR)/$(SUBDIR)/$(@:%_installdata=%) $< - -diff -ur advanced.orig/lib/Makefile advanced/lib/Makefile ---- advanced.orig/lib/Makefile 2011-12-30 20:13:51.000000000 +0200 -+++ advanced/lib/Makefile 2013-05-17 13:56:14.497583060 +0300 -@@ -214,7 +214,7 @@ - .PHONY: install.lib - ifeq ($(NETPBMLIBTYPE),unixshared) - # install a Unix-style shared library --install.lib: $(PKGDIR)/lib $(PKGDIR)/link -+install.lib: $(PKGDIR)/lib $(PKGDIR)/lib - cd $(PKGDIR)/lib ; rm -f libnetpbm.$(NETPBMLIBSUFFIX).$(MAJ).* - $(INSTALL) -c -m $(INSTALL_PERM_LIBD) \ - libnetpbm.$(NETPBMLIBSUFFIX).$(MAJ).$(MIN) $(PKGDIR)/lib/ -@@ -256,26 +256,26 @@ - $(SRCDIR)/lib/$(@:%_installhdr=%) $(PKGDIR)/include/netpbm/ - - .PHONY: install.staticlib --install.staticlib: $(PKGDIR)/link -+install.staticlib: $(PKGDIR)/lib - $(INSTALL) -c -m $(INSTALL_PERM_LIBS) libnetpbm.$(STATICLIBSUFFIX) \ -- $(PKGDIR)/link -+ $(PKGDIR)/lib - - # Install a shared library stub -- the ".so" file used at link time to - # prepare a program for dynamically linking a library at run time - .PHONY: install.sharedlibstub --install.sharedlibstub: $(PKGDIR)/link -+install.sharedlibstub: $(PKGDIR)/lib - ifeq ($(NETPBMLIBTYPE),unixshared) - # install the link-time (.so) links to the runtime libraries -- cd $(PKGDIR)/link ; \ -+ cd $(PKGDIR)/lib ; \ - rm -f libnetpbm.$(NETPBMLIBSUFFIX); \ - $(SYMLINK) ../lib/libnetpbm.$(NETPBMLIBSUFFIX).$(MAJ) \ - libnetpbm.$(NETPBMLIBSUFFIX) - endif - ifeq ($(NETPBMLIBTYPE),dll) -- $(INSTALL) -c -m $(INSTALL_PERM_LIBS) libnetpbm.dll.a $(PKGDIR)/link -+ $(INSTALL) -c -m $(INSTALL_PERM_LIBS) libnetpbm.dll.a $(PKGDIR)/lib - endif - ifeq ($(NETPBMLIBTYPE),dylib) -- cd $(PKGDIR)/link/ ; \ -+ cd $(PKGDIR)/lib/ ; \ - rm -f libnetpbm.dylib; \ - $(SYMLINK) ../lib/libnetpbm.$(MAJ).$(MIN).dylib libnetpbm.dylib - endif diff --git a/multimedia/graphics/netpbm/files/netpbm-CAN-2005-2471.patch b/multimedia/graphics/netpbm/files/netpbm-CAN-2005-2471.patch deleted file mode 100644 index 375224f2a4..0000000000 --- a/multimedia/graphics/netpbm/files/netpbm-CAN-2005-2471.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- netpbm-10.29/converter/other/pstopnm.c.CAN-2005-2471 2005-08-15 02:39:46.000000000 +0200 -+++ netpbm-10.29/converter/other/pstopnm.c 2005-08-16 15:38:15.000000000 +0200 -@@ -711,11 +711,11 @@ - ghostscriptProg, arg0, - deviceopt, outfileopt, gopt, ropt, textalphabitsopt, - "-q", "-dNOPAUSE", -- "-dSAFER", "-"); -+ "-dPARANOIDSAFER", "-"); - } - - execl(ghostscriptProg, arg0, deviceopt, outfileopt, gopt, ropt, "-q", -- "-dNOPAUSE", "-dSAFER", "-", NULL); -+ "-dNOPAUSE", "-dPARANOIDSAFER", "-", NULL); - - pm_error("execl() of Ghostscript ('%s') failed, errno=%d (%s)", - ghostscriptProg, errno, strerror(errno)); diff --git a/multimedia/graphics/netpbm/files/netpbm-security-code.patch b/multimedia/graphics/netpbm/files/netpbm-security-code.patch deleted file mode 100644 index 4425f37490..0000000000 --- a/multimedia/graphics/netpbm/files/netpbm-security-code.patch +++ /dev/null @@ -1,1682 +0,0 @@ -diff -up netpbm-10.58.01/analyzer/pgmtexture.c.security-code netpbm-10.58.01/analyzer/pgmtexture.c ---- netpbm-10.58.01/analyzer/pgmtexture.c.security-code 2012-04-09 15:31:32.000000000 +0200 -+++ netpbm-10.58.01/analyzer/pgmtexture.c 2012-04-09 15:40:03.183620040 +0200 -@@ -97,7 +97,7 @@ vector(unsigned int const nl, - float * v; - - assert(nh >= nl); -- -+ overflow_add(nh - nl, 1); - MALLOCARRAY(v, (unsigned) (nh - nl + 1)); - - if (v == NULL) -@@ -129,6 +129,7 @@ matrix (unsigned int const nrl, - assert(nrh >= nrl); - - /* allocate pointers to rows */ -+ overflow_add(nrh - nrl, 1); - MALLOCARRAY(m, (unsigned) (nrh - nrl + 1)); - if (m == NULL) - pm_error("Unable to allocate memory for a matrix."); -@@ -136,7 +137,7 @@ matrix (unsigned int const nrl, - m -= ncl; - - assert (nch >= ncl); -- -+ overflow_add(nch - ncl, 1); - /* allocate rows and set pointers to them */ - for (i = nrl; i <= nrh; ++i) { - MALLOCARRAY(m[i], (unsigned) (nch - ncl + 1)); -diff -up netpbm-10.58.01/converter/other/gemtopnm.c.security-code netpbm-10.58.01/converter/other/gemtopnm.c ---- netpbm-10.58.01/converter/other/gemtopnm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/gemtopnm.c 2012-04-09 15:40:03.183620040 +0200 -@@ -106,6 +106,7 @@ main(argc, argv) - - pnm_writepnminit( stdout, cols, rows, MAXVAL, type, 0 ); - -+ overflow_add(cols, padright); - { - /* allocate input row data structure */ - int plane; -diff -up netpbm-10.58.01/converter/other/jpegtopnm.c.security-code netpbm-10.58.01/converter/other/jpegtopnm.c ---- netpbm-10.58.01/converter/other/jpegtopnm.c.security-code 2012-04-09 15:31:40.000000000 +0200 -+++ netpbm-10.58.01/converter/other/jpegtopnm.c 2012-04-09 15:40:03.184620028 +0200 -@@ -861,6 +861,8 @@ convertImage(FILE * - /* Calculate output image dimensions so we can allocate space */ - jpeg_calc_output_dimensions(cinfoP); - -+ overflow2(cinfoP->output_width, cinfoP->output_components); -+ - /* Start decompressor */ - jpeg_start_decompress(cinfoP); - -diff -up netpbm-10.58.01/converter/other/pbmtopgm.c.security-code netpbm-10.58.01/converter/other/pbmtopgm.c ---- netpbm-10.58.01/converter/other/pbmtopgm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/pbmtopgm.c 2012-04-09 15:40:03.184620028 +0200 -@@ -47,6 +47,7 @@ main(int argc, char *argv[]) { - "than the image height (%u rows)", height, rows); - - outrow = pgm_allocrow(cols) ; -+ overflow2(width, height); - maxval = MIN(PGM_OVERALLMAXVAL, width*height); - pgm_writepgminit(stdout, cols, rows, maxval, 0) ; - -diff -up netpbm-10.58.01/converter/other/pnmtoddif.c.security-code netpbm-10.58.01/converter/other/pnmtoddif.c ---- netpbm-10.58.01/converter/other/pnmtoddif.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/pnmtoddif.c 2012-04-09 15:40:03.185620015 +0200 -@@ -632,6 +632,7 @@ main(int argc, char *argv[]) { - switch (PNM_FORMAT_TYPE(format)) { - case PBM_TYPE: - ip.bits_per_pixel = 1; -+ overflow_add(cols, 7); - ip.bytes_per_line = (cols + 7) / 8; - ip.spectral = 2; - ip.components = 1; -@@ -647,6 +648,7 @@ main(int argc, char *argv[]) { - ip.polarity = 2; - break; - case PPM_TYPE: -+ overflow2(cols, 3); - ip.bytes_per_line = 3 * cols; - ip.bits_per_pixel = 24; - ip.spectral = 5; -diff -up netpbm-10.58.01/converter/other/pnmtojpeg.c.security-code netpbm-10.58.01/converter/other/pnmtojpeg.c ---- netpbm-10.58.01/converter/other/pnmtojpeg.c.security-code 2012-04-09 15:31:39.000000000 +0200 -+++ netpbm-10.58.01/converter/other/pnmtojpeg.c 2012-04-09 15:40:03.186620002 +0200 -@@ -605,7 +605,11 @@ read_scan_script(j_compress_ptr const ci - want JPOOL_PERMANENT. - */ - const unsigned int scan_info_size = nscans * sizeof(jpeg_scan_info); -- jpeg_scan_info * const scan_info = -+ const jpeg_scan_info * scan_info; -+ -+ overflow2(nscans, sizeof(jpeg_scan_info)); -+ -+ scan_info = - (jpeg_scan_info *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - scan_info_size); -@@ -937,6 +941,8 @@ compute_rescaling_array(JSAMPLE ** const - const long half_maxval = maxval / 2; - long val; - -+ overflow_add(maxval, 1); -+ overflow2(maxval+1, sizeof(JSAMPLE)); - *rescale_p = (JSAMPLE *) - (cinfo.mem->alloc_small) ((j_common_ptr) &cinfo, JPOOL_IMAGE, - (size_t) (((long) maxval + 1L) * -@@ -1015,6 +1021,7 @@ convert_scanlines(struct jpeg_compress_s - */ - - /* Allocate the libpnm output and compressor input buffers */ -+ overflow2(cinfo_p->image_width, cinfo_p->input_components); - buffer = (*cinfo_p->mem->alloc_sarray) - ((j_common_ptr) cinfo_p, JPOOL_IMAGE, - (unsigned int) cinfo_p->image_width * cinfo_p->input_components, -diff -up netpbm-10.58.01/converter/other/pnmtops.c.security-code netpbm-10.58.01/converter/other/pnmtops.c ---- netpbm-10.58.01/converter/other/pnmtops.c.security-code 2012-04-09 15:31:40.000000000 +0200 -+++ netpbm-10.58.01/converter/other/pnmtops.c 2012-04-09 15:40:03.187619989 +0200 -@@ -256,17 +256,21 @@ parseCommandLine(int argc, const char ** - validateCompDimension(width, 72, "-width value"); - validateCompDimension(height, 72, "-height value"); - -+ overflow2(width, 72); - cmdlineP->width = width * 72; -+ overflow2(height, 72); - cmdlineP->height = height * 72; - - if (imagewidthSpec) { - validateCompDimension(imagewidth, 72, "-imagewidth value"); -+ overflow2(imagewidth, 72); - cmdlineP->imagewidth = imagewidth * 72; - } - else - cmdlineP->imagewidth = 0; - if (imageheightSpec) { -- validateCompDimension(imagewidth, 72, "-imageheight value"); -+ validateCompDimension(imageheight, 72, "-imageheight value"); -+ overflow2(imageheight, 72); - cmdlineP->imageheight = imageheight * 72; - } - else -diff -up netpbm-10.58.01/converter/other/pnmtorle.c.security-code netpbm-10.58.01/converter/other/pnmtorle.c ---- netpbm-10.58.01/converter/other/pnmtorle.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/pnmtorle.c 2012-04-09 15:40:03.188619976 +0200 -@@ -19,6 +19,8 @@ - * If you modify this software, you should include a notice giving the - * name of the person performing the modification, the date of modification, - * and the reason for such modification. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - /* - * pnmtorle - A program which will convert pbmplus (ppm or pgm) images -diff -up netpbm-10.58.01/converter/other/pnmtosgi.c.security-code netpbm-10.58.01/converter/other/pnmtosgi.c ---- netpbm-10.58.01/converter/other/pnmtosgi.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/pnmtosgi.c 2012-04-09 15:40:03.188619976 +0200 -@@ -254,6 +254,7 @@ build_channels(FILE * const ifp, int con - #endif - - if( storage != STORAGE_VERBATIM ) { -+ overflow2(channels, rows); - MALLOCARRAY_NOFAIL(table, channels * rows); - MALLOCARRAY_NOFAIL(rletemp, WORSTCOMPR(cols)); - } -@@ -306,6 +307,8 @@ compress(ScanElem * temp, - break; - case STORAGE_RLE: - tabrow = chan_no * rows + row; -+ overflow2(chan_no, rows); -+ overflow_add(chan_no* rows, row); - len = rle_compress(temp, cols); /* writes result into rletemp */ - channel[chan_no][row].length = len; - MALLOCARRAY(p, len); -diff -up netpbm-10.58.01/converter/other/rletopnm.c.security-code netpbm-10.58.01/converter/other/rletopnm.c ---- netpbm-10.58.01/converter/other/rletopnm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/rletopnm.c 2012-04-09 15:40:03.189619963 +0200 -@@ -19,6 +19,8 @@ - * If you modify this software, you should include a notice giving the - * name of the person performing the modification, the date of modification, - * and the reason for such modification. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - /* - * rletopnm - A conversion program to convert from Utah's "rle" image format -diff -up netpbm-10.58.01/converter/other/sgitopnm.c.security-code netpbm-10.58.01/converter/other/sgitopnm.c ---- netpbm-10.58.01/converter/other/sgitopnm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/sgitopnm.c 2012-04-09 15:40:03.189619963 +0200 -@@ -359,10 +359,14 @@ readChannels(FILE * const ifP, - MALLOCARRAY_NOFAIL(image, head->ysize); - } else { - maxchannel = MIN(3, head->zsize); -+ overflow2(head->ysize, maxchannel); - MALLOCARRAY_NOFAIL(image, head->ysize * maxchannel); - } -- if (table) -+ if (table) { -+ overflow2(head->xsize, 2); -+ overflow_add(head->xsize*2, 2); - MALLOCARRAY_NOFAIL(temp, WORSTCOMPR(head->xsize)); -+ } - - for (channel = 0; channel < maxchannel; ++channel) { - unsigned int row; -diff -up netpbm-10.58.01/converter/other/sirtopnm.c.security-code netpbm-10.58.01/converter/other/sirtopnm.c ---- netpbm-10.58.01/converter/other/sirtopnm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/sirtopnm.c 2012-04-09 15:40:03.190619951 +0200 -@@ -69,6 +69,7 @@ char* argv[]; - } - break; - case PPM_TYPE: -+ overflow3(cols, rows, 3); - picsize = cols * rows * 3; - planesize = cols * rows; - if ( !( sirarray = (unsigned char*) malloc( picsize ) ) ) -diff -up netpbm-10.58.01/converter/other/tifftopnm.c.security-code netpbm-10.58.01/converter/other/tifftopnm.c ---- netpbm-10.58.01/converter/other/tifftopnm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/other/tifftopnm.c 2012-04-09 15:40:03.191619939 +0200 -@@ -1279,7 +1279,9 @@ convertRasterByRows(pnmOut * const - if (scanbuf == NULL) - pm_error("can't allocate memory for scanline buffer"); - -- MALLOCARRAY(samplebuf, cols * spp); -+ /* samplebuf is unsigned int * !!! */ -+ samplebuf = (unsigned int *) malloc3(cols , sizeof(unsigned int) , spp); -+ - if (samplebuf == NULL) - pm_error("can't allocate memory for row buffer"); - -diff -up netpbm-10.58.01/converter/other/xwdtopnm.c.security-code netpbm-10.58.01/converter/other/xwdtopnm.c ---- netpbm-10.58.01/converter/other/xwdtopnm.c.security-code 2012-04-09 15:31:40.000000000 +0200 -+++ netpbm-10.58.01/converter/other/xwdtopnm.c 2012-04-09 15:40:03.192619927 +0200 -@@ -209,6 +209,10 @@ processX10Header(X10WDFileHeader * cons - *colorsP = pnm_allocrow(2); - PNM_ASSIGN1((*colorsP)[0], 0); - PNM_ASSIGN1((*colorsP)[1], *maxvalP); -+ overflow_add(h10P->pixmap_width, 15); -+ if(h10P->pixmap_width < 0) -+ pm_error("assert: negative width"); -+ overflow2((((h10P->pixmap_width + 15) / 16) * 16 - h10P->pixmap_width), 8); - *padrightP = - (((h10P->pixmap_width + 15) / 16) * 16 - h10P->pixmap_width) * 8; - *bits_per_itemP = 16; -@@ -634,6 +638,7 @@ processX11Header(X11WDFileHeader * cons - - *colsP = h11FixedP->pixmap_width; - *rowsP = h11FixedP->pixmap_height; -+ overflow2(h11FixedP->bytes_per_line, 8); - *padrightP = - h11FixedP->bytes_per_line * 8 - - h11FixedP->pixmap_width * h11FixedP->bits_per_pixel; -diff -up netpbm-10.58.01/converter/pbm/mdatopbm.c.security-code netpbm-10.58.01/converter/pbm/mdatopbm.c ---- netpbm-10.58.01/converter/pbm/mdatopbm.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/mdatopbm.c 2012-04-09 15:40:03.192619927 +0200 -@@ -245,10 +245,13 @@ main(int argc, char **argv) { - pm_readlittleshort(infile, &yy); nInCols = yy; - } - -+ overflow2(nOutCols, 8); - nOutCols = 8 * nInCols; - nOutRows = nInRows; -- if (bScale) -+ if (bScale) { -+ overflow2(nOutRows, 2); - nOutRows *= 2; -+ } - - data = pbm_allocarray(nOutCols, nOutRows); - -diff -up netpbm-10.58.01/converter/pbm/mgrtopbm.c.security-code netpbm-10.58.01/converter/pbm/mgrtopbm.c ---- netpbm-10.58.01/converter/pbm/mgrtopbm.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/mgrtopbm.c 2012-04-09 15:40:03.193619915 +0200 -@@ -65,6 +65,8 @@ readMgrHeader(FILE * const ifP, - if (head.h_high < ' ' || head.l_high < ' ') - pm_error("Invalid width field in MGR header"); - -+ overflow_add(*colsP, pad); -+ - *colsP = (((int)head.h_wide - ' ') << 6) + ((int)head.l_wide - ' '); - *rowsP = (((int)head.h_high - ' ') << 6) + ((int) head.l_high - ' '); - *padrightP = ( ( *colsP + pad - 1 ) / pad ) * pad - *colsP; -diff -up netpbm-10.58.01/converter/pbm/pbmtogem.c.security-code netpbm-10.58.01/converter/pbm/pbmtogem.c ---- netpbm-10.58.01/converter/pbm/pbmtogem.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtogem.c 2012-04-09 15:40:03.193619915 +0200 -@@ -79,6 +79,7 @@ putinit (int const rows, int const cols) - bitsperitem = 0; - bitshift = 7; - outcol = 0; -+ overflow_add(cols, 7); - outmax = (cols + 7) / 8; - outrow = (unsigned char *) pm_allocrow (outmax, sizeof (unsigned char)); - lastrow = (unsigned char *) pm_allocrow (outmax, sizeof (unsigned char)); -diff -up netpbm-10.58.01/converter/pbm/pbmtogo.c.security-code netpbm-10.58.01/converter/pbm/pbmtogo.c ---- netpbm-10.58.01/converter/pbm/pbmtogo.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtogo.c 2012-04-09 15:40:03.193619915 +0200 -@@ -158,6 +158,7 @@ main(int argc, - bitrow = pbm_allocrow(cols); - - /* Round cols up to the nearest multiple of 8. */ -+ overflow_add(cols, 7); - rucols = ( cols + 7 ) / 8; - bytesperrow = rucols; /* GraphOn uses bytes */ - rucols = rucols * 8; -diff -up netpbm-10.58.01/converter/pbm/pbmtolj.c.security-code netpbm-10.58.01/converter/pbm/pbmtolj.c ---- netpbm-10.58.01/converter/pbm/pbmtolj.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtolj.c 2012-04-09 15:40:03.194619902 +0200 -@@ -120,7 +120,11 @@ parseCommandLine(int argc, char ** argv, - static void - allocateBuffers(unsigned int const cols) { - -+ overflow_add(cols, 8); - rowBufferSize = (cols + 7) / 8; -+ overflow_add(rowBufferSize, 128); -+ overflow_add(rowBufferSize, rowBufferSize+128); -+ overflow_add(rowBufferSize+10, rowBufferSize/8); - packBufferSize = rowBufferSize + (rowBufferSize + 127) / 128 + 1; - deltaBufferSize = rowBufferSize + rowBufferSize / 8 + 10; - -diff -up netpbm-10.58.01/converter/pbm/pbmtomacp.c.security-code netpbm-10.58.01/converter/pbm/pbmtomacp.c ---- netpbm-10.58.01/converter/pbm/pbmtomacp.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtomacp.c 2012-04-09 15:40:03.195619889 +0200 -@@ -101,6 +101,7 @@ char *argv[]; - if( !lflg ) - left = 0; - -+ overflow_add(left, MAX_COLS - 1); - if( rflg ) - { if( right - left >= MAX_COLS ) - right = left + MAX_COLS - 1; -@@ -111,6 +112,8 @@ char *argv[]; - if( !tflg ) - top = 0; - -+ overflow_add(top, MAX_LINES - 1); -+ - if( bflg ) - { if( bottom - top >= MAX_LINES ) - bottom = top + MAX_LINES - 1; -diff -up netpbm-10.58.01/converter/pbm/pbmtomda.c.security-code netpbm-10.58.01/converter/pbm/pbmtomda.c ---- netpbm-10.58.01/converter/pbm/pbmtomda.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtomda.c 2012-04-09 15:40:03.195619889 +0200 -@@ -179,6 +179,7 @@ int main(int argc, char **argv) - - nOutRowsUnrounded = bScale ? nInRows/2 : nInRows; - -+ overflow_add(nOutRowsUnrounded, 3); - nOutRows = ((nOutRowsUnrounded + 3) / 4) * 4; - /* MDA wants rows a multiple of 4 */ - nOutCols = nInCols / 8; -diff -up netpbm-10.58.01/converter/pbm/pbmtoppa/pbm.c.security-code netpbm-10.58.01/converter/pbm/pbmtoppa/pbm.c ---- netpbm-10.58.01/converter/pbm/pbmtoppa/pbm.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtoppa/pbm.c 2012-04-09 15:40:03.195619889 +0200 -@@ -105,6 +105,7 @@ int pbm_readline(pbm_stat* pbm,unsigned - return 0; - - case P4: -+ overflow_add(pbm->width, 7); - tmp=(pbm->width+7)/8; - tmp2=fread(data,1,tmp,pbm->fptr); - if(tmp2 == tmp) -@@ -129,7 +130,8 @@ void pbm_unreadline (pbm_stat *pbm, void - return; - - pbm->unread = 1; -- pbm->revdata = malloc ((pbm->width+7)/8); -+ overflow_add(pbm->width, 7); -+ pbm->revdata = malloc((pbm->width+7)/8); - memcpy (pbm->revdata, data, (pbm->width+7)/8); - pbm->current_line--; - } -diff -up netpbm-10.58.01/converter/pbm/pbmtoppa/pbmtoppa.c.security-code netpbm-10.58.01/converter/pbm/pbmtoppa/pbmtoppa.c ---- netpbm-10.58.01/converter/pbm/pbmtoppa/pbmtoppa.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtoppa/pbmtoppa.c 2012-04-09 15:40:03.196619876 +0200 -@@ -441,6 +441,7 @@ main(int argc, char *argv[]) { - pm_error("main(): unrecognized parameter '%s'", argv[argn]); - } - -+ overflow_add(Width, 7); - Pwidth=(Width+7)/8; - printer.fptr=out; - -diff -up netpbm-10.58.01/converter/pbm/pbmtoxbm.c.security-code netpbm-10.58.01/converter/pbm/pbmtoxbm.c ---- netpbm-10.58.01/converter/pbm/pbmtoxbm.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtoxbm.c 2012-04-09 15:40:03.196619876 +0200 -@@ -335,6 +335,8 @@ convertRaster(FILE * const ifP, - - unsigned char * bitrow; - unsigned int row; -+ -+ overflow_add(cols, padright); - - putinit(xbmVersion); - -diff -up netpbm-10.58.01/converter/pbm/pbmtoybm.c.security-code netpbm-10.58.01/converter/pbm/pbmtoybm.c ---- netpbm-10.58.01/converter/pbm/pbmtoybm.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtoybm.c 2012-04-09 15:40:03.197619863 +0200 -@@ -113,6 +113,7 @@ main(int argc, const char *argv[]) { - bitrow = pbm_allocrow(cols); - - /* Compute padding to round cols up to the nearest multiple of 16. */ -+ overflow_add(cols, 16); - padright = ((cols + 15) / 16) * 16 - cols; - - putinit(cols, rows); -diff -up netpbm-10.58.01/converter/pbm/pbmtozinc.c.security-code netpbm-10.58.01/converter/pbm/pbmtozinc.c ---- netpbm-10.58.01/converter/pbm/pbmtozinc.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmtozinc.c 2012-04-09 15:40:03.197619863 +0200 -@@ -65,6 +65,7 @@ main(int argc, char * argv[]) { - bitrow = pbm_allocrow( cols ); - - /* Compute padding to round cols up to the nearest multiple of 16. */ -+ overflow_add(cols, 16); - padright = ( ( cols + 15 ) / 16 ) * 16 - cols; - - printf( "USHORT %s[] = {\n",name); -diff -up netpbm-10.58.01/converter/pbm/pbmto10x.c.security-code netpbm-10.58.01/converter/pbm/pbmto10x.c ---- netpbm-10.58.01/converter/pbm/pbmto10x.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmto10x.c 2012-04-09 15:40:03.197619863 +0200 -@@ -162,7 +162,7 @@ main(int argc, char * argv[]) { - res_60x72(); - - pm_close(ifp); -- exit(0); -+ return 0; - } - - -diff -up netpbm-10.58.01/converter/pbm/pbmto4425.c.security-code netpbm-10.58.01/converter/pbm/pbmto4425.c ---- netpbm-10.58.01/converter/pbm/pbmto4425.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pbmto4425.c 2012-04-09 15:40:03.198619851 +0200 -@@ -2,6 +2,7 @@ - - #include "nstring.h" - #include "pbm.h" -+#include - - static char bit_table[2][3] = { - {1, 4, 0x10}, -@@ -160,7 +161,7 @@ main(int argc, char * argv[]) { - xres = vmap_width * 2; - yres = vmap_height * 3; - -- vmap = malloc(vmap_width * vmap_height * sizeof(char)); -+ vmap = malloc3(vmap_width, vmap_height, sizeof(char)); - if(vmap == NULL) - { - pm_error( "Cannot allocate memory" ); -diff -up netpbm-10.58.01/converter/pbm/pktopbm.c.security-code netpbm-10.58.01/converter/pbm/pktopbm.c ---- netpbm-10.58.01/converter/pbm/pktopbm.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/pktopbm.c 2012-04-09 15:40:03.198619851 +0200 -@@ -277,6 +277,7 @@ main(int argc, char *argv[]) { - if (flagbyte == 7) { /* long form preamble */ - integer packetlength = get32() ; /* character packet length */ - car = get32() ; /* character number */ -+ overflow_add(packetlength, pktopbm_pkloc); - endofpacket = packetlength + pktopbm_pkloc; - /* calculate end of packet */ - if ((car >= MAXPKCHAR) || !filename[car]) { -diff -up netpbm-10.58.01/converter/pbm/thinkjettopbm.l.security-code netpbm-10.58.01/converter/pbm/thinkjettopbm.l ---- netpbm-10.58.01/converter/pbm/thinkjettopbm.l.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/thinkjettopbm.l 2012-04-09 15:40:03.199619839 +0200 -@@ -114,7 +114,9 @@ DIG [0-9] - \033\*b{DIG}+W { - int l; - if (rowCount >= rowCapacity) { -+ overflow_add(rowCapacity, 100); - rowCapacity += 100; -+ overflow2(rowCapacity, sizeof *rows); - rows = realloc (rows, rowCapacity * sizeof *rows); - if (rows == NULL) - pm_error ("Out of memory."); -@@ -226,6 +228,8 @@ yywrap (void) - /* - * Quite simple since ThinkJet bit arrangement matches PBM - */ -+ -+ overflow2(maxRowLength, 8); - pbm_writepbminit(stdout, maxRowLength*8, rowCount, 0); - - packed_bitrow = malloc(maxRowLength); -diff -up netpbm-10.58.01/converter/pbm/ybmtopbm.c.security-code netpbm-10.58.01/converter/pbm/ybmtopbm.c ---- netpbm-10.58.01/converter/pbm/ybmtopbm.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/converter/pbm/ybmtopbm.c 2012-04-09 15:40:03.199619839 +0200 -@@ -49,6 +49,7 @@ getinit(FILE * const ifP, - pm_error("EOF / read error"); - - *depthP = 1; -+ overflow_add(*colsP, 15); - *padrightP = ((*colsP + 15) / 16) * 16 - *colsP; - } - -diff -up netpbm-10.58.01/converter/pgm/lispmtopgm.c.security-code netpbm-10.58.01/converter/pgm/lispmtopgm.c ---- netpbm-10.58.01/converter/pgm/lispmtopgm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/pgm/lispmtopgm.c 2012-04-09 15:40:03.199619839 +0200 -@@ -58,6 +58,7 @@ main( argc, argv ) - pm_error( "depth (%d bits) is too large", depth); - - pgm_writepgminit( stdout, cols, rows, (gray) maxval, 0 ); -+ overflow_add(cols, 7); - grayrow = pgm_allocrow( ( cols + 7 ) / 8 * 8 ); - - for ( row = 0; row < rows; ++row ) -@@ -102,7 +103,9 @@ getinit( file, colsP, rowsP, depthP, pad - - if ( *depthP == 0 ) - *depthP = 1; /* very old file */ -- -+ -+ overflow_add((int)colsP, 31); -+ - *padrightP = ( ( *colsP + 31 ) / 32 ) * 32 - *colsP; - - if ( *colsP != (cols_32 - *padrightP) ) { -diff -up netpbm-10.58.01/converter/pgm/psidtopgm.c.security-code netpbm-10.58.01/converter/pgm/psidtopgm.c ---- netpbm-10.58.01/converter/pgm/psidtopgm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/pgm/psidtopgm.c 2012-04-09 15:40:03.200619827 +0200 -@@ -78,6 +78,7 @@ main(int argc, - pm_error("bits/sample (%d) is too large.", bitspersample); - - pgm_writepgminit(stdout, cols, rows, maxval, 0); -+ overflow_add(cols, 7); - grayrow = pgm_allocrow((cols + 7) / 8 * 8); - for (row = 0; row < rows; ++row) { - unsigned int col; -diff -up netpbm-10.58.01/converter/ppm/ilbmtoppm.c.security-code netpbm-10.58.01/converter/ppm/ilbmtoppm.c ---- netpbm-10.58.01/converter/ppm/ilbmtoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/ilbmtoppm.c 2012-04-09 15:40:03.201619815 +0200 -@@ -592,6 +592,7 @@ decode_row(FILE * const ifP, - rawtype *chp; - - cols = bmhdP->w; -+ overflow_add(cols, 15); - bytes = RowBytes(cols); - for( plane = 0; plane < nPlanes; plane++ ) { - int mask; -@@ -679,6 +680,23 @@ decode_mask(FILE * const ifP, - Multipalette handling - ****************************************************************************/ - -+static void * -+xmalloc2(x, y) -+ int x; -+ int y; -+{ -+ void *mem; -+ -+ overflow2(x,y); -+ if( x * y == 0 ) -+ return NULL; -+ -+ mem = malloc2(x,y); -+ if( mem == NULL ) -+ pm_error("out of memory allocating %d bytes", x * y); -+ return mem; -+} -+ - - static void - multi_adjust(cmap, row, palchange) -@@ -1341,6 +1359,9 @@ dcol_to_ppm(FILE * const ifP, - if( redmaxval != maxval || greenmaxval != maxval || bluemaxval != maxval ) - pm_message("scaling colors to %d bits", pm_maxvaltobits(maxval)); - -+ overflow_add(redmaxval, 1); -+ overflow_add(greenmaxval, 1); -+ overflow_add(bluemaxval, 1); - MALLOCARRAY_NOFAIL(redtable, redmaxval +1); - MALLOCARRAY_NOFAIL(greentable, greenmaxval +1); - MALLOCARRAY_NOFAIL(bluetable, bluemaxval +1); -@@ -1763,7 +1784,9 @@ PCHG_ConvertSmall(PCHG, cmap, mask, data - ChangeCount32 = *data++; - datasize -= 2; - -+ overflow_add(ChangeCount16, ChangeCount32); - changes = ChangeCount16 + ChangeCount32; -+ overflow_add(changes, 1); - for( i = 0; i < changes; i++ ) { - if( totalchanges >= PCHG->TotalChanges ) goto fail; - if( datasize < 2 ) goto fail; -@@ -2028,6 +2051,9 @@ read_pchg(FILE * const ifp, - cmap->mp_change[i] = NULL; - if( PCHG.StartLine < 0 ) { - int nch; -+ if(PCHG.MaxReg < PCHG.MinReg) -+ pm_error("assert: MinReg > MaxReg"); -+ overflow_add(PCHG.MaxReg-PCHG.MinReg, 2); - nch = PCHG.MaxReg - PCHG.MinReg +1; - MALLOCARRAY_NOFAIL(cmap->mp_init, nch + 1); - for( i = 0; i < nch; i++ ) -@@ -2104,6 +2130,7 @@ process_body( FILE * const ifp, - if( typeid == ID_ILBM ) { - int isdeep; - -+ overflow_add(bmhdP->w, 15); - MALLOCARRAY_NOFAIL(ilbmrow, RowBytes(bmhdP->w)); - *viewportmodesP |= fakeviewport; /* -isham/-isehb */ - -diff -up netpbm-10.58.01/converter/ppm/imgtoppm.c.security-code netpbm-10.58.01/converter/ppm/imgtoppm.c ---- netpbm-10.58.01/converter/ppm/imgtoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/imgtoppm.c 2012-04-09 15:40:03.202619802 +0200 -@@ -84,6 +84,7 @@ main(int argc, char ** argv) { - len = atoi((char*) buf ); - if ( fread( buf, len, 1, ifp ) != 1 ) - pm_error( "bad colormap buf" ); -+ overflow2(cmaplen, 3); - if ( cmaplen * 3 != len ) - { - pm_message( -@@ -105,6 +106,7 @@ main(int argc, char ** argv) { - pm_error( "bad pixel data header" ); - buf[8] = '\0'; - len = atoi((char*) buf ); -+ overflow2(cols, rows); - if ( len != cols * rows ) - pm_message( - "pixel data length (%d) does not match image size (%d)", -diff -up netpbm-10.58.01/converter/ppm/Makefile.security-code netpbm-10.58.01/converter/ppm/Makefile ---- netpbm-10.58.01/converter/ppm/Makefile.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/Makefile 2012-04-09 15:40:03.202619802 +0200 -@@ -11,7 +11,7 @@ SUBDIRS = hpcdtoppm ppmtompeg - - PORTBINARIES = 411toppm eyuvtoppm gouldtoppm ilbmtoppm imgtoppm \ - leaftoppm mtvtoppm neotoppm \ -- pcxtoppm pc1toppm pi1toppm picttoppm pjtoppm \ -+ pcxtoppm pc1toppm pi1toppm pjtoppm \ - ppmtoacad ppmtoapplevol ppmtoarbtxt ppmtoascii \ - ppmtobmp ppmtoeyuv ppmtogif ppmtoicr ppmtoilbm \ - ppmtoleaf ppmtolj ppmtomitsu ppmtoneo \ -diff -up netpbm-10.58.01/converter/ppm/pcxtoppm.c.security-code netpbm-10.58.01/converter/ppm/pcxtoppm.c ---- netpbm-10.58.01/converter/ppm/pcxtoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/pcxtoppm.c 2012-04-09 15:40:03.203619789 +0200 -@@ -409,6 +409,7 @@ pcx_planes_to_pixels(pixels, bitplanes, - /* - * clear the pixel buffer - */ -+ overflow2(bytesperline, 8); - npixels = (bytesperline * 8) / bitsperpixel; - p = pixels; - while (--npixels >= 0) -@@ -470,6 +471,7 @@ pcx_16col_to_ppm(FILE * const ifP, - } - - /* BytesPerLine should be >= BitsPerPixel * cols / 8 */ -+ overflow2(BytesPerLine, 8); - rawcols = BytesPerLine * 8 / BitsPerPixel; - if (headerCols > rawcols) { - pm_message("warning - BytesPerLine = %d, " -diff -up netpbm-10.58.01/converter/ppm/picttoppm.c.security-code netpbm-10.58.01/converter/ppm/picttoppm.c ---- netpbm-10.58.01/converter/ppm/picttoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/picttoppm.c 2012-04-09 15:40:03.205619763 +0200 -@@ -1,3 +1,5 @@ -+#error "Unfixable. Don't ship me" -+ - /* - * picttoppm.c -- convert a MacIntosh PICT file to PPM format. - * -diff -up netpbm-10.58.01/converter/ppm/pjtoppm.c.security-code netpbm-10.58.01/converter/ppm/pjtoppm.c ---- netpbm-10.58.01/converter/ppm/pjtoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/pjtoppm.c 2012-04-09 15:40:03.206619751 +0200 -@@ -127,19 +127,21 @@ main(argc, argv) - case 'V': /* send plane */ - case 'W': /* send last plane */ - if (rows == -1 || r >= rows || image == NULL) { -- if (rows == -1 || r >= rows) -+ if (rows == -1 || r >= rows) { -+ overflow_add(rows, 100); - rows += 100; -+ } - if (image == NULL) { -- MALLOCARRAY(image, rows * planes); -- MALLOCARRAY(imlen, rows * planes); -+ image = (unsigned char **) -+ malloc3(rows , planes , sizeof(unsigned char *)); -+ imlen = (int *) malloc3(rows , planes, sizeof(int)); - } - else { -+ overflow2(rows,planes); - image = (unsigned char **) -- realloc(image, -- rows * planes * -+ realloc2(image, rows * planes, - sizeof(unsigned char *)); -- imlen = (int *) -- realloc(imlen, rows * planes * sizeof(int)); -+ imlen = (int *) realloc2(imlen, rows * planes, sizeof(int)); - } - } - if (image == NULL || imlen == NULL) -@@ -212,8 +214,10 @@ main(argc, argv) - for (i = 0, c = 0; c < imlen[p + r * planes]; c += 2) - for (cmd = image[p + r * planes][c], - val = image[p + r * planes][c+1]; -- cmd >= 0 && i < newcols; cmd--, i++) -+ cmd >= 0 && i < newcols; cmd--, i++) { - buf[i] = val; -+ overflow_add(i, 1); -+ } - cols = cols > i ? cols : i; - free(image[p + r * planes]); - /* -@@ -224,6 +228,7 @@ main(argc, argv) - image[p + r * planes] = (unsigned char *) realloc(buf, i); - } - } -+ overflow2(cols, 8); - cols *= 8; - } - -diff -up netpbm-10.58.01/converter/ppm/ppmtoeyuv.c.security-code netpbm-10.58.01/converter/ppm/ppmtoeyuv.c ---- netpbm-10.58.01/converter/ppm/ppmtoeyuv.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/ppmtoeyuv.c 2012-04-09 15:40:03.206619751 +0200 -@@ -114,6 +114,7 @@ create_multiplication_tables(const pixva - - int index; - -+ overflow_add(maxval, 1); - MALLOCARRAY_NOFAIL(mult299 , maxval+1); - MALLOCARRAY_NOFAIL(mult587 , maxval+1); - MALLOCARRAY_NOFAIL(mult114 , maxval+1); -diff -up netpbm-10.58.01/converter/ppm/ppmtoicr.c.security-code netpbm-10.58.01/converter/ppm/ppmtoicr.c ---- netpbm-10.58.01/converter/ppm/ppmtoicr.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/ppmtoicr.c 2012-04-09 15:40:03.207619739 +0200 -@@ -169,7 +169,7 @@ char* argv[]; - - if (rleflag) { - pm_message("sending run-length encoded picture data ..." ); -- testimage = (char*) malloc(rows*cols); -+ testimage = (char*) malloc2(rows, cols); - p = testimage; - for (i=0; i PCL_MAXVAL) - pm_error("color range too large; reduce with ppmcscale"); -+ if (cols < 0 || rows < 0) -+ pm_error("negative size is not possible"); - - /* Figure out the colormap. */ - pm_message("Computing colormap..."); -@@ -296,6 +298,8 @@ main(int argc, const char * argv[]) { - case 0: /* direct mode (no palette) */ - bpp = bitsperpixel(maxval); /* bits per pixel */ - bpg = bpp; bpb = bpp; -+ overflow2(bpp, 3); -+ overflow_add(bpp*3, 7); - bpp = (bpp*3+7)>>3; /* bytes per pixel now */ - bpr = (bpp<<3)-bpg-bpb; - bpp *= cols; /* bytes per row now */ -@@ -305,9 +309,13 @@ main(int argc, const char * argv[]) { - case 3: case 7: pclindex++; - default: - bpp = 8/pclindex; -+ overflow_add(cols, bpp); -+ if(bpp == 0) -+ pm_error("assert: no bpp"); - bpp = (cols+bpp-1)/bpp; /* bytes per row */ - } - } -+ overflow2(bpp,2); - inrow = (char *)malloc((unsigned)bpp); - outrow = (char *)malloc((unsigned)bpp*2); - runcnt = (signed char *)malloc((unsigned)bpp); -diff -up netpbm-10.58.01/converter/ppm/ppmtowinicon.c.security-code netpbm-10.58.01/converter/ppm/ppmtowinicon.c ---- netpbm-10.58.01/converter/ppm/ppmtowinicon.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/ppmtowinicon.c 2012-04-09 15:40:03.213619664 +0200 -@@ -12,6 +12,7 @@ - - #include - #include -+#include - - #include "pm_c_util.h" - #include "winico.h" -@@ -219,6 +220,7 @@ createAndBitmap (gray ** const ba, int c - MALLOCARRAY_NOFAIL(rowData, rows); - icBitmap->xBytes = xBytes; - icBitmap->data = rowData; -+ overflow2(xBytes, rows); - icBitmap->size = xBytes * rows; - for (y=0;yxBytes = xBytes; - icBitmap->data = rowData; -+ overflow2(xBytes, rows); - icBitmap->size = xBytes * rows; - - for (y=0;yxBytes = xBytes; - icBitmap->data = rowData; -+ overflow2(xBytes, rows); - icBitmap->size = xBytes * rows; - - for (y=0;ybitcount = bpp; - entry->ih = createInfoHeader(entry, xorBitmap, andBitmap); - entry->colors = palette->colors; -+ overflow2(4, entry->color_count); -+ overflow_add(xorBitmap->size, andBitmap->size); -+ overflow_add(xorBitmap->size + andBitmap->size, 40); -+ overflow_add(xorBitmap->size + andBitmap->size + 40, 4 * entry->color_count); - entry->size_in_bytes = - xorBitmap->size + andBitmap->size + 40 + (4 * entry->color_count); - if (verbose) -diff -up netpbm-10.58.01/converter/ppm/ppmtoxpm.c.security-code netpbm-10.58.01/converter/ppm/ppmtoxpm.c ---- netpbm-10.58.01/converter/ppm/ppmtoxpm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/ppmtoxpm.c 2012-04-09 15:40:03.214619651 +0200 -@@ -197,6 +197,7 @@ genNumstr(unsigned int const input, int - unsigned int i; - - /* Allocate memory for printed number. Abort if error. */ -+ overflow_add(digits, 1); - if (!(str = (char *) malloc(digits + 1))) - pm_error("out of memory"); - -@@ -314,6 +315,7 @@ genCmap(colorhist_vector const chv, - unsigned int charsPerPixel; - unsigned int xpmMaxval; - -+ if (includeTransparent) overflow_add(ncolors, 1); - MALLOCARRAY(cmap, cmapSize); - if (cmapP == NULL) - pm_error("Out of memory allocating %u bytes for a color map.", -diff -up netpbm-10.58.01/converter/ppm/qrttoppm.c.security-code netpbm-10.58.01/converter/ppm/qrttoppm.c ---- netpbm-10.58.01/converter/ppm/qrttoppm.c.security-code 2012-04-09 15:31:42.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/qrttoppm.c 2012-04-09 15:40:03.215619638 +0200 -@@ -46,7 +46,7 @@ main( argc, argv ) - - ppm_writeppminit( stdout, cols, rows, maxval, 0 ); - pixelrow = ppm_allocrow( cols ); -- buf = (unsigned char *) malloc( 3 * cols ); -+ buf = (unsigned char *) malloc2( 3 , cols ); - if ( buf == (unsigned char *) 0 ) - pm_error( "out of memory" ); - -diff -up netpbm-10.58.01/converter/ppm/sldtoppm.c.security-code netpbm-10.58.01/converter/ppm/sldtoppm.c ---- netpbm-10.58.01/converter/ppm/sldtoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/sldtoppm.c 2012-04-09 15:40:03.216619626 +0200 -@@ -455,6 +455,8 @@ slider(slvecfn slvec, - - /* Allocate image buffer and clear it to black. */ - -+ overflow_add(ixdots,1); -+ overflow_add(iydots,1); - pixels = ppm_allocarray(pixcols = ixdots + 1, pixrows = iydots + 1); - PPM_ASSIGN(rgbcolor, 0, 0, 0); - ppmd_filledrectangle(pixels, pixcols, pixrows, pixmaxval, 0, 0, -diff -up netpbm-10.58.01/converter/ppm/ximtoppm.c.security-code netpbm-10.58.01/converter/ppm/ximtoppm.c ---- netpbm-10.58.01/converter/ppm/ximtoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/ximtoppm.c 2012-04-09 15:40:03.216619626 +0200 -@@ -117,6 +117,7 @@ ReadXimHeader(FILE * const in_fp, - header->bits_channel = atoi(a_head.bits_per_channel); - header->alpha_flag = atoi(a_head.alpha_channel); - if (strlen(a_head.author)) { -+ overflow_add(strlen(a_head.author),1); - if (!(header->author = calloc((unsigned int)strlen(a_head.author)+1, - 1))) { - pm_message("ReadXimHeader: can't calloc author string" ); -@@ -126,6 +127,7 @@ ReadXimHeader(FILE * const in_fp, - strncpy(header->author, a_head.author, strlen(a_head.author)); - } - if (strlen(a_head.date)) { -+ overflow_add(strlen(a_head.date),1); - if (!(header->date =calloc((unsigned int)strlen(a_head.date)+1,1))){ - pm_message("ReadXimHeader: can't calloc date string" ); - return(0); -@@ -134,6 +136,7 @@ ReadXimHeader(FILE * const in_fp, - strncpy(header->date, a_head.date, strlen(a_head.date)); - } - if (strlen(a_head.program)) { -+ overflow_add(strlen(a_head.program),1); - if (!(header->program = calloc( - (unsigned int)strlen(a_head.program) + 1, 1))) { - pm_message("ReadXimHeader: can't calloc program string" ); -@@ -160,6 +163,7 @@ ReadXimHeader(FILE * const in_fp, - if (header->nchannels == 3 && header->bits_channel == 8) - header->ncolors = 0; - else if (header->nchannels == 1 && header->bits_channel == 8) { -+ overflow2(header->ncolors, sizeof(Color)); - header->colors = (Color *)calloc((unsigned int)header->ncolors, - sizeof(Color)); - if (header->colors == NULL) { -diff -up netpbm-10.58.01/converter/ppm/yuvtoppm.c.security-code netpbm-10.58.01/converter/ppm/yuvtoppm.c ---- netpbm-10.58.01/converter/ppm/yuvtoppm.c.security-code 2012-04-09 15:31:44.000000000 +0200 -+++ netpbm-10.58.01/converter/ppm/yuvtoppm.c 2012-04-09 15:40:03.218619602 +0200 -@@ -72,6 +72,7 @@ main(argc, argv) - - ppm_writeppminit(stdout, cols, rows, (pixval) 255, 0); - pixrow = ppm_allocrow(cols); -+ overflow_add(cols, 1); - MALLOCARRAY(yuvbuf, (cols+1)/2); - if (yuvbuf == NULL) - pm_error("Unable to allocate YUV buffer for %d columns.", cols); -diff -up netpbm-10.58.01/editor/pamcut.c.security-code netpbm-10.58.01/editor/pamcut.c ---- netpbm-10.58.01/editor/pamcut.c.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/pamcut.c 2012-04-09 15:40:03.218619602 +0200 -@@ -655,6 +655,8 @@ cutOneImage(FILE * const ifP - - outpam = inpam; /* Initial value -- most fields should be same */ - outpam.file = ofP; -+ overflow_add(rightcol, 1); -+ overflow_add(bottomrow, 1); - outpam.width = rightcol - leftcol + 1; - outpam.height = bottomrow - toprow + 1; - -diff -up netpbm-10.58.01/editor/pbmreduce.c.security-code netpbm-10.58.01/editor/pbmreduce.c ---- netpbm-10.58.01/editor/pbmreduce.c.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/pbmreduce.c 2012-04-09 15:40:03.219619590 +0200 -@@ -94,6 +94,7 @@ main( argc, argv ) - if (halftone == QT_FS) { - unsigned int col; - /* Initialize Floyd-Steinberg. */ -+ overflow_add(newcols, 2); - MALLOCARRAY(thiserr, newcols + 2); - MALLOCARRAY(nexterr, newcols + 2); - if (thiserr == NULL || nexterr == NULL) -diff -up netpbm-10.58.01/editor/pnmgamma.c.security-code netpbm-10.58.01/editor/pnmgamma.c ---- netpbm-10.58.01/editor/pnmgamma.c.security-code 2012-04-09 15:31:34.000000000 +0200 -+++ netpbm-10.58.01/editor/pnmgamma.c 2012-04-09 15:40:03.220619577 +0200 -@@ -586,6 +586,7 @@ createGammaTables(enum transferFunction - xelval ** const btableP) { - - /* Allocate space for the tables. */ -+ overflow_add(maxval, 1); - MALLOCARRAY(*rtableP, maxval+1); - MALLOCARRAY(*gtableP, maxval+1); - MALLOCARRAY(*btableP, maxval+1); -diff -up netpbm-10.58.01/editor/pnmhisteq.c.security-code netpbm-10.58.01/editor/pnmhisteq.c ---- netpbm-10.58.01/editor/pnmhisteq.c.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/pnmhisteq.c 2012-04-09 15:40:03.220619577 +0200 -@@ -103,6 +103,7 @@ computeLuminosityHistogram(xel * const * - unsigned int pixelCount; - unsigned int * lumahist; - -+ overflow_add(maxval, 1); - MALLOCARRAY(lumahist, maxval + 1); - if (lumahist == NULL) - pm_error("Out of storage allocating array for %u histogram elements", -diff -up netpbm-10.58.01/editor/pnmindex.csh.security-code netpbm-10.58.01/editor/pnmindex.csh ---- netpbm-10.58.01/editor/pnmindex.csh.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/pnmindex.csh 2012-04-09 15:40:03.221619564 +0200 -@@ -1,5 +1,8 @@ - #!/bin/csh -f - # -+echo "Unsafe code, needs debugging, do not ship" -+exit 1 -+# - # pnmindex - build a visual index of a bunch of anymaps - # - # Copyright (C) 1991 by Jef Poskanzer. -diff -up netpbm-10.58.01/editor/pnmpad.c.security-code netpbm-10.58.01/editor/pnmpad.c ---- netpbm-10.58.01/editor/pnmpad.c.security-code 2012-04-09 15:31:34.000000000 +0200 -+++ netpbm-10.58.01/editor/pnmpad.c 2012-04-09 15:40:03.221619564 +0200 -@@ -527,6 +527,8 @@ main(int argc, const char ** argv) { - - computePadSizes(cmdline, cols, rows, &lpad, &rpad, &tpad, &bpad); - -+ overflow_add(cols, lpad); -+ overflow_add(cols + lpad, rpad); - newcols = cols + lpad + rpad; - - if (PNM_FORMAT_TYPE(format) == PBM_TYPE) -diff -up netpbm-10.58.01/editor/pnmremap.c.security-code netpbm-10.58.01/editor/pnmremap.c ---- netpbm-10.58.01/editor/pnmremap.c.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/pnmremap.c 2012-04-09 15:40:03.222619551 +0200 -@@ -409,7 +409,7 @@ initFserr(struct pam * const pamP, - unsigned int plane; - - unsigned int const fserrSize = pamP->width + 2; -- -+ overflow_add(pamP->width, 2); - fserrP->width = pamP->width; - - MALLOCARRAY(fserrP->thiserr, pamP->depth); -@@ -445,6 +445,7 @@ floydInitRow(struct pam * const pamP, st - - int col; - -+ overflow_add(pamP->width, 2); - for (col = 0; col < pamP->width + 2; ++col) { - unsigned int plane; - for (plane = 0; plane < pamP->depth; ++plane) -diff -up netpbm-10.58.01/editor/pnmscalefixed.c.security-code netpbm-10.58.01/editor/pnmscalefixed.c ---- netpbm-10.58.01/editor/pnmscalefixed.c.security-code 2012-04-09 15:31:34.000000000 +0200 -+++ netpbm-10.58.01/editor/pnmscalefixed.c 2012-04-09 15:40:03.223619538 +0200 -@@ -214,6 +214,8 @@ compute_output_dimensions(const struct c - const int rows, const int cols, - int * newrowsP, int * newcolsP) { - -+ overflow2(rows, cols); -+ - if (cmdline.pixels) { - if (rows * cols <= cmdline.pixels) { - *newrowsP = rows; -@@ -265,6 +267,8 @@ compute_output_dimensions(const struct c - - if (*newcolsP < 1) *newcolsP = 1; - if (*newrowsP < 1) *newrowsP = 1; -+ -+ overflow2(*newcolsP, *newrowsP); - } - - -@@ -446,6 +450,9 @@ main(int argc, char **argv ) { - unfilled. We can address that by stretching, whereas the other - case would require throwing away some of the input. - */ -+ -+ overflow2(newcols, SCALE); -+ overflow2(newrows, SCALE); - sxscale = SCALE * newcols / cols; - syscale = SCALE * newrows / rows; - -diff -up netpbm-10.58.01/editor/pnmshear.c.security-code netpbm-10.58.01/editor/pnmshear.c ---- netpbm-10.58.01/editor/pnmshear.c.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/pnmshear.c 2012-04-09 15:40:03.224619526 +0200 -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - - #include "pm_c_util.h" - #include "ppm.h" -@@ -236,6 +237,11 @@ main(int argc, char * argv[]) { - - shearfac = fabs(tan(cmdline.angle)); - -+ if(rows * shearfac >= INT_MAX-1) -+ pm_error("image too large"); -+ -+ overflow_add(rows * shearfac, cols+1); -+ - newcols = rows * shearfac + cols + 0.999999; - - pnm_writepnminit(stdout, newcols, rows, newmaxval, newformat, 0); -diff -up netpbm-10.58.01/editor/ppmdither.c.security-code netpbm-10.58.01/editor/ppmdither.c ---- netpbm-10.58.01/editor/ppmdither.c.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/ppmdither.c 2012-04-09 15:40:03.224619526 +0200 -@@ -355,7 +355,11 @@ dithMatrix(unsigned int const dithPower) - unsigned int const dithMatSize = - (dithDim * sizeof(*dithMat)) + /* pointers */ - (dithDim * dithDim * sizeof(**dithMat)); /* data */ -- -+ -+ overflow2(dithDim, sizeof(*dithMat)); -+ overflow3(dithDim, dithDim, sizeof(**dithMat)); -+ overflow_add(dithDim * sizeof(*dithMat), dithDim * dithDim * sizeof(**dithMat)); -+ - dithMat = malloc(dithMatSize); - - if (dithMat == NULL) -diff -up netpbm-10.58.01/editor/specialty/pamoil.c.security-code netpbm-10.58.01/editor/specialty/pamoil.c ---- netpbm-10.58.01/editor/specialty/pamoil.c.security-code 2012-04-09 15:31:33.000000000 +0200 -+++ netpbm-10.58.01/editor/specialty/pamoil.c 2012-04-09 15:40:03.224619526 +0200 -@@ -112,6 +112,7 @@ main(int argc, char *argv[] ) { - tuples = pnm_readpam(ifp, &inpam, PAM_STRUCT_SIZE(tuple_type)); - pm_close(ifp); - -+ overflow_add(inpam.maxval, 1); - MALLOCARRAY(hist, inpam.maxval + 1); - if (hist == NULL) - pm_error("Unable to allocate memory for histogram."); -diff -up netpbm-10.58.01/generator/pbmtext.c.security-code netpbm-10.58.01/generator/pbmtext.c ---- netpbm-10.58.01/generator/pbmtext.c.security-code 2012-04-09 15:31:34.000000000 +0200 -+++ netpbm-10.58.01/generator/pbmtext.c 2012-04-09 15:40:03.225619514 +0200 -@@ -96,12 +96,14 @@ parseCommandLine(int argc, const char ** - - for (i = 1; i < argc; ++i) { - if (i > 1) { -+ overflow_add(totaltextsize, 1); - totaltextsize += 1; - text = realloc(text, totaltextsize); - if (text == NULL) - pm_error("out of memory allocating space for input text"); - strcat(text, " "); - } -+ overflow_add(totaltextsize, strlen(argv[i])); - totaltextsize += strlen(argv[i]); - text = realloc(text, totaltextsize); - if (text == NULL) -@@ -712,6 +714,7 @@ getText(const char cmdline_text - pm_error("A line of input text is longer than %u characters." - "Cannot process.", (unsigned)sizeof(buf)-1); - if (lineCount >= maxlines) { -+ overflow2(maxlines, 2); - maxlines *= 2; - REALLOCARRAY(text_array, maxlines); - if (text_array == NULL) -@@ -832,6 +835,7 @@ main(int argc, const char *argv[]) { - hmargin = fontP->maxwidth; - } else { - vmargin = fontP->maxheight; -+ overflow2(2, fontP->maxwidth); - hmargin = 2 * fontP->maxwidth; - } - } -diff -up netpbm-10.58.01/generator/pgmcrater.c.security-code netpbm-10.58.01/generator/pgmcrater.c ---- netpbm-10.58.01/generator/pgmcrater.c.security-code 2012-04-09 15:31:34.000000000 +0200 -+++ netpbm-10.58.01/generator/pgmcrater.c 2012-04-09 15:40:03.226619502 +0200 -@@ -130,7 +130,7 @@ static void gencraters() - /* Acquire the elevation array and initialize it to mean - surface elevation. */ - -- MALLOCARRAY(aux, SCRX * SCRY); -+ aux = (unsigned short *) malloc3(SCRX, SCRY, sizeof(short)); - if (aux == NULL) - pm_error("out of memory allocating elevation array"); - -diff -up netpbm-10.58.01/generator/pgmkernel.c.security-code netpbm-10.58.01/generator/pgmkernel.c ---- netpbm-10.58.01/generator/pgmkernel.c.security-code 2012-04-09 15:31:34.000000000 +0200 -+++ netpbm-10.58.01/generator/pgmkernel.c 2012-04-09 15:40:03.226619502 +0200 -@@ -68,7 +68,7 @@ main ( argc, argv ) - kycenter = (fysize - 1) / 2.0; - ixsize = fxsize + 0.999; - iysize = fysize + 0.999; -- MALLOCARRAY(fkernel, ixsize * iysize); -+ fkernel = (double *) malloc3 (ixsize, iysize, sizeof(double)); - for (i = 0; i < iysize; i++) - for (j = 0; j < ixsize; j++) { - fkernel[i*ixsize+j] = 1.0 / (1.0 + w * sqrt((double) -diff -up netpbm-10.58.01/lib/libpam.c.security-code netpbm-10.58.01/lib/libpam.c ---- netpbm-10.58.01/lib/libpam.c.security-code 2012-04-09 15:31:38.000000000 +0200 -+++ netpbm-10.58.01/lib/libpam.c 2012-04-09 15:40:03.227619490 +0200 -@@ -220,7 +220,8 @@ allocPamRow(const struct pam * const pam - unsigned int const bytesPerTuple = allocationDepth(pamP) * sizeof(sample); - tuple * tuplerow; - -- tuplerow = malloc(pamP->width * (sizeof(tuple *) + bytesPerTuple)); -+ overflow_add(sizeof(tuple *), bytesPerTuple); -+ tuplerow = malloc2(pamP->width, (sizeof(tuple *) + bytesPerTuple)); - - if (tuplerow != NULL) { - /* Now we initialize the pointers to the individual tuples -diff -up netpbm-10.58.01/lib/libpammap.c.security-code netpbm-10.58.01/lib/libpammap.c ---- netpbm-10.58.01/lib/libpammap.c.security-code 2012-04-09 15:31:38.000000000 +0200 -+++ netpbm-10.58.01/lib/libpammap.c 2012-04-09 15:40:03.228619477 +0200 -@@ -104,6 +104,8 @@ allocTupleIntListItem(struct pam * const - */ - struct tupleint_list_item * retval; - -+ overflow2(pamP->depth, sizeof(sample)); -+ overflow_add(sizeof(*retval)-sizeof(retval->tupleint.tuple), pamP->depth*sizeof(sample)); - unsigned int const size = - sizeof(*retval) - sizeof(retval->tupleint.tuple) - + pamP->depth * sizeof(sample); -diff -up netpbm-10.58.01/lib/libpbm1.c.security-code netpbm-10.58.01/lib/libpbm1.c ---- netpbm-10.58.01/lib/libpbm1.c.security-code 2012-04-09 15:31:38.000000000 +0200 -+++ netpbm-10.58.01/lib/libpbm1.c 2012-04-09 15:40:03.228619477 +0200 -@@ -77,6 +77,7 @@ pbm_check(FILE * file, const enum pm_che - pm_message("pm_filepos passed to pm_check() is %u bytes", - sizeof(pm_filepos)); - #endif -+ overflow2(bytes_per_row, rows); - pm_check(file, check_type, need_raster_size, retval_p); - } - } -diff -up netpbm-10.58.01/lib/libpm.c.security-code netpbm-10.58.01/lib/libpm.c ---- netpbm-10.58.01/lib/libpm.c.security-code 2012-04-09 15:31:38.000000000 +0200 -+++ netpbm-10.58.01/lib/libpm.c 2012-04-09 15:40:03.229619464 +0200 -@@ -808,4 +808,53 @@ pm_parse_height(const char * const arg) - } - - -+/* -+ * Maths wrapping -+ */ -+ -+void __overflow2(int a, int b) -+{ -+ if(a < 0 || b < 0) -+ pm_error("object too large"); -+ if(b == 0) -+ return; -+ if(a > INT_MAX / b) -+ pm_error("object too large"); -+} -+ -+void overflow3(int a, int b, int c) -+{ -+ overflow2(a,b); -+ overflow2(a*b, c); -+} -+ -+void overflow_add(int a, int b) -+{ -+ if( a > INT_MAX - b) -+ pm_error("object too large"); -+} -+ -+void *malloc2(int a, int b) -+{ -+ overflow2(a, b); -+ if(a*b == 0) -+ pm_error("Zero byte allocation"); -+ return malloc(a*b); -+} -+ -+void *malloc3(int a, int b, int c) -+{ -+ overflow3(a, b, c); -+ if(a*b*c == 0) -+ pm_error("Zero byte allocation"); -+ return malloc(a*b*c); -+} -+ -+void *realloc2(void * a, int b, int c) -+{ -+ overflow2(b, c); -+ if(b*c == 0) -+ pm_error("Zero byte allocation"); -+ return realloc(a, b*c); -+} - -diff -up netpbm-10.58.01/lib/pm.h.security-code netpbm-10.58.01/lib/pm.h ---- netpbm-10.58.01/lib/pm.h.security-code 2012-04-09 15:31:38.000000000 +0200 -+++ netpbm-10.58.01/lib/pm.h 2012-04-09 15:40:03.229619464 +0200 -@@ -432,4 +432,11 @@ pm_parse_height(const char * const arg); - #endif - - -+void *malloc2(int, int); -+void *malloc3(int, int, int); -+#define overflow2(a,b) __overflow2(a,b) -+void __overflow2(int, int); -+void overflow3(int, int, int); -+void overflow_add(int, int); -+ - #endif -diff -up netpbm-10.58.01/other/pnmcolormap.c.security-code netpbm-10.58.01/other/pnmcolormap.c ---- netpbm-10.58.01/other/pnmcolormap.c.security-code 2012-04-09 15:31:32.000000000 +0200 -+++ netpbm-10.58.01/other/pnmcolormap.c 2012-04-09 15:40:03.230619451 +0200 -@@ -840,6 +840,7 @@ colormapToSquare(struct pam * const pamP - pamP->width = intsqrt; - else - pamP->width = intsqrt + 1; -+ overflow_add(intsqrt, 1); - } - { - unsigned int const intQuotient = colormap.size / pamP->width; -diff -up netpbm-10.58.01/urt/README.security-code netpbm-10.58.01/urt/README ---- netpbm-10.58.01/urt/README.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/README 2012-04-09 15:40:03.231619438 +0200 -@@ -18,3 +18,8 @@ in its initializer in the original. But - defines stdout as a variable, so that wouldn't compile. So I changed - it to NULL and added a line to rle_hdr_init to set that field to - 'stdout' dynamically. 2000.06.02 BJH. -+ -+Redid the code to check for maths overflows and other crawly horrors. -+Removed pipe through and compress support (unsafe) -+ -+Alan Cox -diff -up netpbm-10.58.01/urt/rle_addhist.c.security-code netpbm-10.58.01/urt/rle_addhist.c ---- netpbm-10.58.01/urt/rle_addhist.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/rle_addhist.c 2012-04-09 15:40:03.231619438 +0200 -@@ -14,6 +14,8 @@ - * If you modify this software, you should include a notice giving the - * name of the person performing the modification, the date of modification, - * and the reason for such modification. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - /* - * rle_addhist.c - Add to the HISTORY comment in header -@@ -71,13 +73,19 @@ rle_addhist(char * argv[], - return; - - length = 0; -- for (i = 0; argv[i]; ++i) -+ for (i = 0; argv[i]; ++i) { -+ overflow_add(length, strlen(argv[i])); -+ overflow_add(length+1, strlen(argv[i])); - length += strlen(argv[i]) +1; /* length of each arg plus space. */ -+ } - - time(&temp); - timedate = ctime(&temp); - length += strlen(timedate); /* length of date and time in ASCII. */ - -+ overflow_add(strlen(padding), 4); -+ overflow_add(strlen(histoire), strlen(padding) + 4); -+ overflow_add(length, strlen(histoire) + strlen(padding) + 4); - length += strlen(padding) + 3 + strlen(histoire) + 1; - /* length of padding, "on " and length of history name plus "="*/ - if (in_hdr) /* if we are interested in the old comments... */ -@@ -85,9 +93,12 @@ rle_addhist(char * argv[], - else - old = NULL; - -- if (old && *old) -+ if (old && *old) { -+ overflow_add(length, strlen(old)); - length += strlen(old); /* add length if there. */ -+ } - -+ overflow_add(length, 1); - ++length; /*Cater for the null. */ - - MALLOCARRAY(newc, length); -diff -up netpbm-10.58.01/urt/rle_getrow.c.security-code netpbm-10.58.01/urt/rle_getrow.c ---- netpbm-10.58.01/urt/rle_getrow.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/rle_getrow.c 2012-04-09 15:40:03.232619426 +0200 -@@ -17,6 +17,8 @@ - * - * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire - * to have all "void" functions so declared. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - /* - * rle_getrow.c - Read an RLE file in. -@@ -168,6 +170,7 @@ rle_get_setup(rle_hdr * const the_hdr) { - register char * cp; - - VAXSHORT( comlen, infile ); /* get comment length */ -+ overflow_add(comlen, 1); - evenlen = (comlen + 1) & ~1; /* make it even */ - if ( evenlen ) - { -diff -up netpbm-10.58.01/urt/rle_hdr.c.security-code netpbm-10.58.01/urt/rle_hdr.c ---- netpbm-10.58.01/urt/rle_hdr.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/rle_hdr.c 2012-04-09 15:40:03.233619414 +0200 -@@ -14,6 +14,8 @@ - * If you modify this software, you should include a notice giving the - * name of the person performing the modification, the date of modification, - * and the reason for such modification. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - /* - * rle_hdr.c - Functions to manipulate rle_hdr structures. -@@ -80,7 +82,10 @@ int img_num; - /* Fill in with copies of the strings. */ - if ( the_hdr->cmd != pgmname ) - { -- char *tmp = (char *)malloc( strlen( pgmname ) + 1 ); -+ char *tmp ; -+ -+ overflow_add(strlen(pgmname), 1); -+ tmp = malloc( strlen( pgmname ) + 1 ); - RLE_CHECK_ALLOC( pgmname, tmp, 0 ); - strcpy( tmp, pgmname ); - the_hdr->cmd = tmp; -@@ -88,7 +93,9 @@ int img_num; - - if ( the_hdr->file_name != fname ) - { -- char *tmp = (char *)malloc( strlen( fname ) + 1 ); -+ char *tmp; -+ overflow_add(strlen(fname), 1); -+ tmp = malloc( strlen( fname ) + 1 ); - RLE_CHECK_ALLOC( pgmname, tmp, 0 ); - strcpy( tmp, fname ); - the_hdr->file_name = tmp; -@@ -153,6 +160,7 @@ rle_hdr *from_hdr, *to_hdr; - if ( to_hdr->bg_color ) - { - int size = to_hdr->ncolors * sizeof(int); -+ overflow2(to_hdr->ncolors, sizeof(int)); - to_hdr->bg_color = (int *)malloc( size ); - RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->bg_color, "background color" ); - memcpy( to_hdr->bg_color, from_hdr->bg_color, size ); -@@ -161,7 +169,7 @@ rle_hdr *from_hdr, *to_hdr; - if ( to_hdr->cmap ) - { - int size = to_hdr->ncmap * (1 << to_hdr->cmaplen) * sizeof(rle_map); -- to_hdr->cmap = (rle_map *)malloc( size ); -+ to_hdr->cmap = (rle_map *)malloc3( to_hdr->ncmap, 1<cmaplen, sizeof(rle_map)); - RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->cmap, "color map" ); - memcpy( to_hdr->cmap, from_hdr->cmap, size ); - } -@@ -174,11 +182,16 @@ rle_hdr *from_hdr, *to_hdr; - int size = 0; - CONST_DECL char **cp; - for ( cp=to_hdr->comments; *cp; cp++ ) -+ { -+ overflow_add(size, 1); - size++; /* Count the comments. */ -+ } - /* Check if there are really any comments. */ - if ( size ) - { -+ overflow_add(size, 1); - size++; /* Copy the NULL pointer, too. */ -+ overflow2(size, sizeof(char *)); - size *= sizeof(char *); - to_hdr->comments = (CONST_DECL char **)malloc( size ); - RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->comments, "comments" ); -diff -up netpbm-10.58.01/urt/rle.h.security-code netpbm-10.58.01/urt/rle.h ---- netpbm-10.58.01/urt/rle.h.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/rle.h 2012-04-09 15:40:03.233619414 +0200 -@@ -14,6 +14,9 @@ - * If you modify this software, you should include a notice giving the - * name of the person performing the modification, the date of modification, - * and the reason for such modification. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox -+ * Header declarations needed - */ - /* - * rle.h - Global declarations for Utah Raster Toolkit RLE programs. -@@ -160,6 +163,17 @@ rle_hdr /* End of typedef. * - */ - extern rle_hdr rle_dflt_hdr; - -+/* -+ * Provided by pm library -+ */ -+ -+extern void overflow_add(int, int); -+#define overflow2(a,b) __overflow2(a,b) -+extern void __overflow2(int, int); -+extern void overflow3(int, int, int); -+extern void *malloc2(int, int); -+extern void *malloc3(int, int, int); -+extern void *realloc2(void *, int, int); - - /* Declare RLE library routines. */ - -diff -up netpbm-10.58.01/urt/rle_open_f.c.security-code netpbm-10.58.01/urt/rle_open_f.c ---- netpbm-10.58.01/urt/rle_open_f.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/rle_open_f.c 2012-04-09 15:40:03.234619402 +0200 -@@ -163,65 +163,7 @@ dealWithSubprocess(const char * const f - FILE ** const fpP, - bool * const noSubprocessP, - const char ** const errorP) { -- --#ifdef NO_OPEN_PIPES - *noSubprocessP = TRUE; --#else -- const char *cp; -- -- reapChildren(catchingChildrenP, pids); -- -- /* Real file, not stdin or stdout. If name ends in ".Z", -- * pipe from/to un/compress (depending on r/w mode). -- * -- * If it starts with "|", popen that command. -- */ -- -- cp = file_name + strlen(file_name) - 2; -- /* Pipe case. */ -- if (file_name[0] == '|') { -- pid_t thepid; /* PID from my_popen */ -- -- *noSubprocessP = FALSE; -- -- *fpP = my_popen(file_name + 1, mode, &thepid); -- if (*fpP == NULL) -- *errorP = "%s: can't invoke <<%s>> for %s: "; -- else { -- /* One more child to catch, eventually. */ -- if (*catchingChildrenP < MAX_CHILDREN) -- pids[(*catchingChildrenP)++] = thepid; -- } -- } else if (cp > file_name && *cp == '.' && *(cp + 1) == 'Z' ) { -- /* Compress case. */ -- pid_t thepid; /* PID from my_popen. */ -- const char * command; -- -- *noSubprocessP = FALSE; -- -- if (*mode == 'w') -- pm_asprintf(&command, "compress > %s", file_name); -- else if (*mode == 'a') -- pm_asprintf(&command, "compress >> %s", file_name); -- else -- pm_asprintf(&command, "compress -d < %s", file_name); -- -- *fpP = my_popen(command, mode, &thepid); -- -- if (*fpP == NULL) -- *errorP = "%s: can't invoke 'compress' program, " -- "trying to open %s for %s"; -- else { -- /* One more child to catch, eventually. */ -- if (*catchingChildrenP < MAX_CHILDREN) -- pids[(*catchingChildrenP)++] = thepid; -- } -- pm_strfree(command); -- } else { -- *noSubprocessP = TRUE; -- *errorP = NULL; -- } --#endif - } - - -diff -up netpbm-10.58.01/urt/rle_putcom.c.security-code netpbm-10.58.01/urt/rle_putcom.c ---- netpbm-10.58.01/urt/rle_putcom.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/rle_putcom.c 2012-04-09 15:40:03.234619402 +0200 -@@ -14,6 +14,8 @@ - * If you modify this software, you should include a notice giving the - * name of the person performing the modification, the date of modification, - * and the reason for such modification. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - /* - * rle_putcom.c - Add a picture comment to the header struct. -@@ -98,12 +100,14 @@ rle_putcom(const char * const value, - const char * v; - const char ** old_comments; - int i; -- for (i = 2, cp = the_hdr->comments; *cp != NULL; ++i, ++cp) -+ for (i = 2, cp = the_hdr->comments; *cp != NULL; ++i, ++cp) { -+ overflow_add(i, 1); - if (match(value, *cp) != NULL) { - v = *cp; - *cp = value; - return v; - } -+ } - /* Not found */ - /* Can't realloc because somebody else might be pointing to this - * comments block. Of course, if this were true, then the -diff -up netpbm-10.58.01/urt/Runput.c.security-code netpbm-10.58.01/urt/Runput.c ---- netpbm-10.58.01/urt/Runput.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/Runput.c 2012-04-09 15:40:03.235619390 +0200 -@@ -17,6 +17,8 @@ - * - * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire - * to have all "void" functions so declared. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - /* - * Runput.c - General purpose Run Length Encoding. -@@ -202,9 +204,11 @@ RunSetup(rle_hdr * the_hdr) - if ( the_hdr->background != 0 ) - { - register int i; -- register rle_pixel *background = -- (rle_pixel *)malloc( (unsigned)(the_hdr->ncolors + 1) ); -+ register rle_pixel *background; - register int *bg_color; -+ -+ overflow_add(the_hdr->ncolors,1); -+ background = (rle_pixel *)malloc( (unsigned)(the_hdr->ncolors + 1) ); - /* - * If even number of bg color bytes, put out one more to get to - * 16 bit boundary. -@@ -224,7 +228,7 @@ RunSetup(rle_hdr * the_hdr) - /* Big-endian machines are harder */ - register int i, nmap = (1 << the_hdr->cmaplen) * - the_hdr->ncmap; -- register char *h_cmap = (char *)malloc( nmap * 2 ); -+ register char *h_cmap = (char *)malloc2( nmap, 2 ); - if ( h_cmap == NULL ) - { - fprintf( stderr, -diff -up netpbm-10.58.01/urt/scanargs.c.security-code netpbm-10.58.01/urt/scanargs.c ---- netpbm-10.58.01/urt/scanargs.c.security-code 2012-04-09 15:31:45.000000000 +0200 -+++ netpbm-10.58.01/urt/scanargs.c 2012-04-09 15:40:03.235619390 +0200 -@@ -38,6 +38,8 @@ - * - * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire - * to have all "void" functions so declared. -+ * -+ * 2002-12-19: Fix maths wrapping bugs. Alan Cox - */ - - #include -@@ -63,8 +65,8 @@ typedef int *ptr; - /* - * Storage allocation macros - */ --#define NEW( type, cnt ) (type *) malloc( (cnt) * sizeof( type ) ) --#define RENEW( type, ptr, cnt ) (type *) realloc( ptr, (cnt) * sizeof( type ) ) -+#define NEW( type, cnt ) (type *) malloc2( (cnt) , sizeof( type ) ) -+#define RENEW( type, ptr, cnt ) (type *) realloc2( ptr, (cnt), sizeof( type ) ) - - static CONST_DECL char * prformat( CONST_DECL char *, int ); - static int isnum( CONST_DECL char *, int, int ); diff --git a/multimedia/graphics/netpbm/files/netpbm-security-scripts.patch b/multimedia/graphics/netpbm/files/netpbm-security-scripts.patch deleted file mode 100644 index 9e503c45bc..0000000000 --- a/multimedia/graphics/netpbm/files/netpbm-security-scripts.patch +++ /dev/null @@ -1,374 +0,0 @@ -diff -up netpbm-10.47.05/converter/other/anytopnm.security-scripts netpbm-10.47.05/converter/other/anytopnm ---- netpbm-10.47.05/converter/other/anytopnm.security-scripts 2009-12-10 08:34:36.000000000 +0100 -+++ netpbm-10.47.05/converter/other/anytopnm 2010-03-16 21:28:09.000000000 +0100 -@@ -510,10 +510,7 @@ else - inputFile="-" - fi - --tempdir="${TMPDIR-/tmp}/anytopnm.$$" --mkdir -m 0700 $tempdir || \ -- { echo "Could not create temporary file. Exiting."; exit 1;} --trap 'rm -rf $tempdir' 0 -+tempdir=$(mktemp -d -t anytopnm.XXXXXXXXXX) || exit 1 - - # Take out all spaces - # Find the filename extension for last-ditch efforts later -@@ -539,9 +536,17 @@ if [ "$filetype" = "unknown" ]; then - echo "$progname: unknown file type. " \ - "'file' says mime type is '$mimeType', " 1>&2 - echo "type description is '$typeDescription'" 1>&2 -+ if [ -d "$tempdir" ] ; then -+ rm -rf "$tempdir" -+ fi -+ - exit 1 - fi - - convertIt $file $filetype - -+if [ -d "$tempdir" ] ; then -+ rm -rf "$tempdir" -+fi -+ - exit 0 -diff -up netpbm-10.47.05/editor/pamstretch-gen.security-scripts netpbm-10.47.05/editor/pamstretch-gen ---- netpbm-10.47.05/editor/pamstretch-gen.security-scripts 2009-12-10 08:34:32.000000000 +0100 -+++ netpbm-10.47.05/editor/pamstretch-gen 2010-03-16 21:28:47.000000000 +0100 -@@ -31,13 +31,9 @@ if [ "$1" = "" ]; then - exit 1 - fi - --tempdir="${TMPDIR-/tmp}/pamstretch-gen.$$" --mkdir -m 0700 $tempdir || \ -- { echo "Could not create temporary file. Exiting."; exit 1;} -+tempfile=$(mktemp /tmp/pnmig.XXXXXXXXXX) || exit 1 - trap 'rm -rf $tempdir' 0 1 3 15 - --tempfile=$tempdir/pnmig -- - if ! cat $2 >$tempfile 2>/dev/null; then - echo 'pamstretch-gen: error reading file' 1>&2 - exit 1 -diff -up netpbm-10.47.05/editor/pnmmargin.security-scripts netpbm-10.47.05/editor/pnmmargin ---- netpbm-10.47.05/editor/pnmmargin.security-scripts 2009-12-10 08:34:32.000000000 +0100 -+++ netpbm-10.47.05/editor/pnmmargin 2010-03-16 21:28:09.000000000 +0100 -@@ -11,15 +11,11 @@ - # documentation. This software is provided "as is" without express or - # implied warranty. - --tempdir="${TMPDIR-/tmp}/pnmmargin.$$" --mkdir -m 0700 $tempdir || \ -- { echo "Could not create temporary file. Exiting." 1>&2; exit 1;} --trap 'rm -rf $tempdir' 0 1 3 15 -- --tmp1=$tempdir/pnmm1 --tmp2=$tempdir/pnmm2 --tmp3=$tempdir/pnmm3 --tmp4=$tempdir/pnmm4 -+tmpdir=$(mktemp -d -t ppmmargin.XXXXXXX) || exit 1 -+tmp1="$tmpdir/tmp1" -+tmp2="$tmpdir/tmp2" -+tmp3="$tmpdir/tmp3" -+tmp4="$tmpdir/tmp4" - - color="-gofigure" - plainopt="" -@@ -90,6 +86,7 @@ else - -white | -black ) - pnmpad $plainopt $color \ - -left=$size -right=$size -top=$size -bottom=$size $tmp1 -+ rm -rf "$tmpdir" - exit - ;; - * ) -@@ -102,7 +99,4 @@ else - pnmcat -lr $tmp2 $tmp1 $tmp2 > $tmp4 - pnmcat -tb $plainopt $tmp3 $tmp4 $tmp3 - fi -- -- -- -- -+rm -rf "$tmpdir" -diff -up netpbm-10.47.05/editor/ppmfade.security-scripts netpbm-10.47.05/editor/ppmfade ---- netpbm-10.47.05/editor/ppmfade.security-scripts 2009-12-10 08:34:32.000000000 +0100 -+++ netpbm-10.47.05/editor/ppmfade 2010-03-16 21:28:09.000000000 +0100 -@@ -14,6 +14,7 @@ - # - #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - use strict; -+use File::Temp "tempdir"; - - my $SPREAD = 1; - my $SHIFT = 2; -@@ -111,20 +112,26 @@ if ($first_file ne "undefined") { - - print("Frames are " . $width . "W x " . $height . "H\n"); - -+# -+# We create a tmp-directory right here -+# -+my $tmpdir = tempdir("ppmfade.XXXXXX", CLEANUP => 1); -+ -+ - if ($first_file eq "undefined") { - print "Fading from black to "; -- system("ppmmake \\#000 $width $height >junk1$$.ppm"); -+ system("ppmmake \\#000 $width $height >$tmpdir/junk1$$.ppm"); - } else { - print "Fading from $first_file to "; -- system("cp", $first_file, "junk1$$.ppm"); -+ system("cp", $first_file, "$tmpdir/junk1$$.ppm"); - } - - if ($last_file eq "undefined") { - print "black.\n"; -- system("ppmmake \\#000 $width $height >junk2$$.ppm"); -+ system("ppmmake \\#000 $width $height >$tmpdir/junk2$$.ppm"); - } else { - print "$last_file\n"; -- system("cp", $last_file, "junk2$$.ppm"); -+ system("cp", $last_file, "$tmpdir/junk2$$.ppm"); - } - - # -@@ -132,14 +139,14 @@ if ($last_file eq "undefined") { - # - - # Here's what our temporary files are: --# junk1$$.ppm: The original (fade-from) image --# junk2$$.ppm: The target (fade-from) image --# junk3$$.ppm: The frame of the fade for the current iteration of the --# the for loop. --# junk1a$$.ppm: If the fade involves a ppmmix sequence from one intermediate --# image to another, this is the first frame of that --# sequence. --# junk2a$$.ppm: This is the last frame of the above-mentioned ppmmix sequence -+# $tmpdir/junk1$$.ppm: The original (fade-from) image -+# $tmpdir/junk2$$.ppm: The target (fade-from) image -+# $tmpdir/junk3$$.ppm: The frame of the fade for the current iteration of the -+# the for loop. -+# $tmpdir/junk1a$$.ppm: If the fade involves a ppmmix sequence from one intermediate -+# image to another, this is the first frame of that -+# sequence. -+# $tmpdir/junk2a$$.ppm: This is the last frame of the above-mentioned ppmmix sequence - - my $i; # Frame number - for ($i = 1; $i <= $nframes; $i++) { -@@ -147,147 +154,147 @@ for ($i = 1; $i <= $nframes; $i++) { - if ($mode eq $SPREAD) { - if ($i <= 10) { - my $n = $spline20[$i] * 100; -- system("ppmspread $n junk1$$.ppm >junk3$$.ppm"); -+ system("ppmspread $n $tmpdir/junk1$$.ppm >$tmpdir/junk3$$.ppm"); - } elsif ($i <= 20) { - my $n; - $n = $spline20[$i] * 100; -- system("ppmspread $n junk1$$.ppm >junk1a$$.ppm"); -+ system("ppmspread $n $tmpdir/junk1$$.ppm >$tmpdir/junk1a$$.ppm"); - $n = (1-$spline20[$i-10]) * 100; -- system("ppmspread $n junk2$$.ppm >junk2a$$.ppm"); -+ system("ppmspread $n $tmpdir/junk2$$.ppm >$tmpdir/junk2a$$.ppm"); - $n = $spline10[$i-10]; -- system("ppmmix $n junk1a$$.ppm junk2a$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1a$$.ppm $tmpdir/junk2a$$.ppm >$tmpdir/junk3$$.ppm"); - } else { - my $n = (1-$spline20[$i-10])*100; -- system("ppmspread $n junk2$$.ppm >junk3$$.ppm"); -+ system("ppmspread $n $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm"); - } - } elsif ($mode eq $SHIFT) { - if ($i <= 10) { - my $n = $spline20[$i] * 100; -- system("ppmshift $n junk1$$.ppm >junk3$$.ppm"); -+ system("ppmshift $n $tmpdir/junk1$$.ppm >$tmpdir/junk3$$.ppm"); - } elsif ($i <= 20) { - my $n; - $n = $spline20[$i] * 100; -- system("ppmshift $n junk1$$.ppm >junk1a$$.ppm"); -+ system("ppmshift $n $tmpdir/junk1$$.ppm >$tmpdir/junk1a$$.ppm"); - $n = (1-$spline20[$i-10])*100; -- system("ppmshift $n junk2$$.ppm >junk2a$$.ppm"); -+ system("ppmshift $n $tmpdir/junk2$$.ppm >$tmpdir/junk2a$$.ppm"); - $n = $spline10[$i-10]; -- system("ppmmix $n junk1a$$.ppm junk2a$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1a$$.ppm $tmpdir/junk2a$$.ppm >$tmpdir/junk3$$.ppm"); - } else { - my $n = (1-$spline20[$i-10]) * 100; -- system("ppmshift $n junk2$$.ppm >junk3$$.ppm"); -+ system("ppmshift $n $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm"); - } - } elsif ($mode eq $RELIEF) { - if ($i == 1) { -- system("ppmrelief junk1$$.ppm >junk1r$$.ppm"); -+ system("ppmrelief $tmpdir/junk1$$.ppm >$tmpdir/junk1r$$.ppm"); - } - if ($i <= 10) { - my $n = $spline10[$i]; -- system("ppmmix $n junk1$$.ppm junk1r$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1$$.ppm $tmpdir/junk1r$$.ppm >$tmpdir/junk3$$.ppm"); - } elsif ($i <= 20) { - my $n = $spline10[$i-10]; -- system("ppmmix $n junk1r$$.ppm junk2r$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1r$$.ppm $tmpdir/junk2r$$.ppm >$tmpdir/junk3$$.ppm"); - } else { - my $n = $spline10[$i-20]; -- system("ppmmix $n junk2r$$.ppm junk2$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk2r$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm"); - } - if ($i == 10) { -- system("ppmrelief junk2$$.ppm >junk2r$$.ppm"); -+ system("ppmrelief $tmpdir/junk2$$.ppm >$tmpdir/junk2r$$.ppm"); - } - } elsif ($mode eq $OIL) { - if ($i == 1) { -- system("ppmtopgm junk1$$.ppm | pgmoil >junko$$.ppm"); -- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " . -- ">junk1o$$.ppm"); -+ system("ppmtopgm $tmpdir/junk1$$.ppm | pgmoil >$tmpdir/junko$$.ppm"); -+ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " . -+ ">$tmpdir/junk1o$$.ppm"); - } - if ($i <= 10) { - my $n = $spline10[$i]; -- system("ppmmix $n junk1$$.ppm junk1o$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1$$.ppm $tmpdir/junk1o$$.ppm >$tmpdir/junk3$$.ppm"); - } elsif ($i <= 20) { - my $n = $spline10[$i-10]; -- system("ppmmix $n junk1o$$.ppm junk2o$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1o$$.ppm $tmpdir/junk2o$$.ppm >$tmpdir/junk3$$.ppm"); - } else { - my $n = $spline10[$i-20]; -- system("ppmmix $n junk2o$$.ppm junk2$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk2o$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm"); - } - if ($i == 10) { -- system("ppmtopgm junk2$$.ppm | pgmoil >junko$$.ppm"); -- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " . -- ">junk2o$$.ppm"); -+ system("ppmtopgm $tmpdir/junk2$$.ppm | pgmoil >$tmpdir/junko$$.ppm"); -+ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " . -+ ">$tmpdir/junk2o$$.ppm"); - } - } elsif ($mode eq $EDGE) { - if ($i == 1) { -- system("ppmtopgm junk1$$.ppm | pgmedge >junko$$.ppm"); -- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " . -- ">junk1o$$.ppm"); -+ system("ppmtopgm $tmpdir/junk1$$.ppm | pgmedge >$tmpdir/junko$$.ppm"); -+ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " . -+ ">$tmpdir/junk1o$$.ppm"); - } - if ($i <= 10) { - my $n = $spline10[$i]; -- system("ppmmix $n junk1$$.ppm junk1o$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1$$.ppm $tmpdir/junk1o$$.ppm >$tmpdir/junk3$$.ppm"); - } elsif ($i <= 20) { - my $n = $spline10[$i-10]; -- system("ppmmix $n junk1o$$.ppm junk2o$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1o$$.ppm $tmpdir/junk2o$$.ppm >$tmpdir/junk3$$.ppm"); - } else { - my $n = $spline10[$i-20]; -- system("ppmmix $n junk2o$$.ppm junk2$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk2o$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm"); - } - if ($i == 10) { -- system("ppmtopgm junk2$$.ppm | pgmedge >junko$$.ppm"); -- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " . -- ">junk2o$$.ppm"); -+ system("ppmtopgm $tmpdir/junk2$$.ppm | pgmedge >$tmpdir/junko$$.ppm"); -+ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " . -+ ">$tmpdir/junk2o$$.ppm"); - } - } elsif ($mode eq $BENTLEY) { - if ($i == 1) { -- system("ppmtopgm junk1$$.ppm | pgmbentley >junko$$.ppm"); -- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " . -- ">junk1o$$.ppm"); -+ system("ppmtopgm $tmpdir/junk1$$.ppm | pgmbentley >$tmpdir/junko$$.ppm"); -+ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " . -+ ">$tmpdir/junk1o$$.ppm"); - } - if ($i <= 10) { - my $n = $spline10[$i]; -- system("ppmmix $n junk1$$.ppm junk1o$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1$$.ppm $tmpdir/junk1o$$.ppm >$tmpdir/junk3$$.ppm"); - } elsif ($i <= 20) { - my $n = $spline10[$i-10]; -- system("ppmmix $n junk1o$$.ppm junk2o$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1o$$.ppm $tmpdir/junk2o$$.ppm >$tmpdir/junk3$$.ppm"); - } else { - my $n = $spline10[$i-20]; -- system("ppmmix $n junk2o$$.ppm junk2$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk2o$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm"); - } - if ($i == 10) { -- system("ppmtopgm junk2$$.ppm | pgmbentley >junko$$.ppm"); -- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " . -- ">junk2o$$.ppm"); -+ system("ppmtopgm $tmpdir/junk2$$.ppm | pgmbentley >$tmpdir/junko$$.ppm"); -+ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " . -+ ">$tmpdir/junk2o$$.ppm"); - } - } elsif ($mode eq $BLOCK) { - if ($i <= 10) { - my $n = 1 - 1.9*$spline20[$i]; -- system("pamscale $n junk1$$.ppm | " . -- "pamscale -width $width -height $height >junk3$$.ppm"); -+ system("pamscale $n $tmpdir/junk1$$.ppm | " . -+ "pamscale -width $width -height $height >$tmpdir/junk3$$.ppm"); - } elsif ($i <= 20) { - my $n = $spline10[$i-10]; -- system("ppmmix $n junk1a$$.ppm junk2a$$.ppm >junk3$$.ppm"); -+ system("ppmmix $n $tmpdir/junk1a$$.ppm $tmpdir/junk2a$$.ppm >$tmpdir/junk3$$.ppm"); - } else { - my $n = 1 - 1.9*$spline20[31-$i]; -- system("pamscale $n junk2$$.ppm | " . -- "pamscale -width $width -height $height >junk3$$.ppm"); -+ system("pamscale $n $tmpdir/junk2$$.ppm | " . -+ "pamscale -width $width -height $height >$tmpdir/junk3$$.ppm"); - } - if ($i == 10) { -- system("cp", "junk3$$.ppm", "junk1a$$.ppm"); -- system("pamscale $n junk2$$.ppm | " . -- "pamscale -width $width -height $height >junk2a$$.ppm"); -+ system("cp", "$tmpdir/junk3$$.ppm", "$tmpdir/junk1a$$.ppm"); -+ system("pamscale $n $tmpdir/junk2$$.ppm | " . -+ "pamscale -width $width -height $height >$tmpdir/junk2a$$.ppm"); - } - } elsif ($mode eq $MIX) { - my $fade_factor = sqrt(1/($nframes-$i+1)); -- system("ppmmix $fade_factor junk1$$.ppm junk2$$.ppm >junk3$$.ppm"); -+ system("ppmmix $fade_factor $tmpdir/junk1$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm"); - } else { - print("Internal error: impossible mode value '$mode'\n"); - } - - my $outfile = sprintf("%s.%04d.ppm", $base_name, $i); -- system("cp", "junk3$$.ppm", $outfile); -+ system("cp", "$tmpdir/junk3$$.ppm", $outfile); - } - - # - # Clean up shop. - # --system("rm junk*$$.ppm"); -+system("rm $tmpdir/junk*$$.ppm"); - - exit(0); -diff -up netpbm-10.47.05/editor/ppmshadow.security-scripts netpbm-10.47.05/editor/ppmshadow ---- netpbm-10.47.05/editor/ppmshadow.security-scripts 2009-12-10 08:34:32.000000000 +0100 -+++ netpbm-10.47.05/editor/ppmshadow 2010-03-16 21:28:09.000000000 +0100 -@@ -72,9 +72,10 @@ sub makeConvolutionKernel($$) { - - - my $tmpdir = $ENV{TMPDIR} || "/tmp"; --my $ourtmp = "$tmpdir/ppmshadow$$"; --mkdir($ourtmp, 0777) or -- die("Unable to create directory for temporary files '$ourtmp"); -+my $ourtmp; chomp($ourtmp = `mktemp -d -t PPMshadow.XXXXXX`); -+if ($? >> 8) { -+ die "Can't create directory for temporary files"; -+} - - # Process command line options diff --git a/multimedia/graphics/netpbm/pspec.xml b/multimedia/graphics/netpbm/pspec.xml index f7d53d2093..c9ca9268d0 100644 --- a/multimedia/graphics/netpbm/pspec.xml +++ b/multimedia/graphics/netpbm/pspec.xml @@ -1,55 +1,47 @@ - + netpbm - http://netpbm.sourceforge.net/ + https://netpbm.sourceforge.net/ PisiLinux Community admins@pisilinux.org GPLv2 app:console - A set of utilities to convert to/from the netpbm (and related) formats - Netpbm is a toolkit for manipulation of graphic images, including conversion of images between a variety of different formats. There are over 300 separate tools in the package including converters for about 100 graphics formats. - http://archlinux.c3sl.ufpr.br/other/netpbm/netpbm-10.61.02.tar.gz - - config.mk - + Netpbm - graphics tools and converters. + A toolkit for manipulation of graphic images, including conversion of images between a variety of different formats. + mirrors://sourceforge/netpbm/netpbm-10.86.48.tgz - jasper-devel - tiff-devel - libpng-devel - libjpeg-turbo-devel zlib-devel + tiff-devel libX11-devel + libpng-devel + jasper-devel libxml2-devel + libjpeg-turbo-devel - netpbm-CAN-2005-2471.patch - netpbm-security-code.patch - netpbm-security-scripts.patch - library-link.patch + netpbm - jasper - tiff - libpng - libjpeg-turbo zlib + tiff libX11 + libpng + jasper libxml2 + libjpeg-turbo /usr/bin /usr/lib - /usr/share/netpbm - /usr/share/man - /usr/share/doc + /usr/share @@ -61,11 +53,17 @@ /usr/include - /usr/share/man/man3 + + 2025-10-22 + 10.86.48 + Version bump. + Pisi Linux Community + admin@pisilinux.org + 2020-03-06 10.61.02