summaryrefslogtreecommitdiff
path: root/Build/source/libs
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs')
-rw-r--r--Build/source/libs/libpng/ANNOUNCE72
-rw-r--r--Build/source/libs/libpng/CHANGES44
-rw-r--r--Build/source/libs/libpng/INSTALL16
-rw-r--r--Build/source/libs/libpng/KNOWNBUG2
-rw-r--r--Build/source/libs/libpng/LICENSE6
-rw-r--r--Build/source/libs/libpng/README29
-rw-r--r--Build/source/libs/libpng/Y2KINFO4
-rw-r--r--Build/source/libs/libpng/libpng-1.2.25.txt (renamed from Build/source/libs/libpng/libpng-1.2.24.txt)8
-rw-r--r--Build/source/libs/libpng/libpng.322
-rw-r--r--Build/source/libs/libpng/libpngpf.34
-rw-r--r--Build/source/libs/libpng/png.52
-rw-r--r--Build/source/libs/libpng/png.c6
-rw-r--r--Build/source/libs/libpng/png.h26
-rw-r--r--Build/source/libs/libpng/pngconf.h4
-rw-r--r--Build/source/libs/libpng/pngpread.c67
-rw-r--r--Build/source/libs/libpng/pngread.c40
-rw-r--r--Build/source/libs/libpng/pngrtran.c19
-rw-r--r--Build/source/libs/libpng/pngrutil.c14
-rw-r--r--Build/source/libs/libpng/pngset.c9
-rw-r--r--Build/source/libs/libpng/pngtest.c2
-rw-r--r--Build/source/libs/libpng/pngwrite.c42
-rw-r--r--Build/source/libs/obsdcompat/.cvsignore1
-rw-r--r--Build/source/libs/obsdcompat/README4
-rw-r--r--Build/source/libs/xpdf/xpdf/Decrypt.h2
-rw-r--r--Build/source/libs/xpdf/xpdf/Makefile.in14
-rw-r--r--Build/source/libs/xpdf/xpdf/Stream.cc419
-rw-r--r--Build/source/libs/xpdf/xpdf/Stream.h11
-rw-r--r--Build/source/libs/xpdf/xpdf/config.h2
28 files changed, 527 insertions, 364 deletions
diff --git a/Build/source/libs/libpng/ANNOUNCE b/Build/source/libs/libpng/ANNOUNCE
index c49c7b6bd61..afa31b92885 100644
--- a/Build/source/libs/libpng/ANNOUNCE
+++ b/Build/source/libs/libpng/ANNOUNCE
@@ -1,5 +1,5 @@
-Libpng 1.2.24 - December 14, 2007
+Libpng 1.2.25 - February 18, 2008
This is a public release of libpng, intended for use in production codes.
@@ -8,51 +8,59 @@ Files available for download:
Source files with LF line endings (for Unix/Linux) and with a
"configure" script
- libpng-1.2.24.tar.gz
- libpng-1.2.24.tar.bz2
+ libpng-1.2.25.tar.gz
+ libpng-1.2.25.tar.lzma
+ (Get the lzma codec from <http://tukaani.org/lzma>).
+ libpng-1.2.25.tar.bz2
Source files with LF line endings (for Unix/Linux) without the
"configure" script
- libpng-1.2.24-no-config.tar.gz
- libpng-1.2.24-no-config.tar.bz2
+ libpng-1.2.25-no-config.tar.gz
+ libpng-1.2.25-no-config.tar.lzma
+ libpng-1.2.25-no-config.tar.bz2
Source files with CRLF line endings (for Windows), without the
"configure" script
- lpng1224.zip
- lpng1224.tar.bz2
+ lpng1225.zip
+ lpng1225.7z
+ lpng1225.tar.bz2
Project files
- libpng-1.2.24-project-netware.zip
- libpng-1.2.24-project-wince.zip
+ libpng-1.2.25-project-netware.zip
+ libpng-1.2.25-project-wince.zip
Other information:
- libpng-1.2.24-README.txt
- libpng-1.2.24-KNOWNBUGS.txt
- libpng-1.2.24-LICENSE.txt
- libpng-1.2.24-Y2K-compliance.txt
-
-Changes since the last public release (1.2.23):
-
-version 1.2.24 [December 14, 2007]
-
- Moved misplaced test for malloc failure in png_set_sPLT(). This bug was
- introduced in libpng-1.2.20.
- Ifdef out avg_row etc from png.h and pngwrite.c when PNG_NO_WRITE_FILTER
- Do not use png_ptr->free_fn and png_ptr->mem_fn in png_destroy_read_struct()
- when png_ptr is NULL (Marshall Clow).
- Updated handling of symbol prefixes in Makefile.am and configure.ac (Mike
- Frysinger).
- Removed a useless test and fixed incorrect test in png_set_cHRM_fixed()
- (David Hill).
- Make sure not to redefine _BSD_SOURCE in pngconf.h
- Revised gather.sh and makefile.std in contrib/pngminim to avoid compiling
- unused files.
-
-
+ libpng-1.2.25-README.txt
+ libpng-1.2.25-KNOWNBUGS.txt
+ libpng-1.2.25-LICENSE.txt
+ libpng-1.2.25-Y2K-compliance.txt
+ libpng-1.2.25-1.2.24-diff.txt
+
+Changes since the last public release (1.2.24):
+
+version 1.2.25 [February 18, 2008]
+
+ Fixed bug with unknown chunk handling, introduced in version 1.2.17
+ Prevent gamma from being applied twice.
+ Fixed some continue-after-malloc-failure errors in pngset.c (David Hill)
+ Check for info_ptr == NULL in png_read_info() and png_process_data().
+ Check for possible use of NULL user_png_ver[] in png_create_read_struct().
+ Fix overflow of "msg" in png_decompres_chunk().
+ Added libpng-1.2.25.tar.lzma to distribution. Get the lzma codec
+ from <http://tukaani.org/lzma>.
+ Added lpng1225.7z to distribution. Get the 7-zip decoder from
+ from <http://www.7-zip.org>.
+ Fixed some broken links in the README file.
+ Refactored png_read_push_finish_row() slightly, trying to satisfy Coverity.
+ Fixed potential NULL dereference of png_ptr in png_destroy_write_struct();
+ clarified potential NULL dereference of png_ptr in png_destroy_read_struct();
+ fixed potential NULL dereference of info_ptr in png_handle_bKGD();
+ fixed potential NULL dereference of user_png_ver[] in
+ png_create_write_struct_2(). (Coverity)
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/Build/source/libs/libpng/CHANGES b/Build/source/libs/libpng/CHANGES
index a6e5856aa04..7cee1a4607f 100644
--- a/Build/source/libs/libpng/CHANGES
+++ b/Build/source/libs/libpng/CHANGES
@@ -2032,6 +2032,50 @@ version 1.2.24 [December 14, 2007]
Revised gather.sh and makefile.std in contrib/pngminim to avoid compiling
unused files.
+version 1.2.25beta01 [January 7, 2008]
+ Fixed bug with unknown chunk handling, introduced in version 1.2.17rc2
+
+version 1.2.25beta02 [January 10, 2008]
+ Prevent gamma from being applied twice.
+
+version 1.2.25rc01 [January 17, 2008]
+ No changes.
+
+version 1.2.25beta03 [January 22, 2008]
+ Fixed some continue-after-malloc-failure errors in pngset.c (David Hill)
+ Check for info_ptr == NULL in png_read_info() and png_process_data().
+ Check for possible use of NULL user_png_ver[] in png_create_read_struct().
+ Change "if (swidth == NULL)" to "if (sheight == NULL)" in png_handle_sCAL
+ (bug introduced in libpng-1.2.4/1.0.13).
+ Return from png_destroy_read_struct() if png_ptr_ptr is NULL.
+ Fix overflow of "msg" in png_decompres_chunk().
+
+version 1.2.25beta04 [January 26, 2008]
+ Work around Coverity bug report by slightly refactoring
+ png_read_push_finish_row()
+
+version 1.2.25beta05 [January 31, 2008]
+ Added libpng-1.2.25beta05.tar.lzma to distribution. Get the lzma codec
+ from <http://tukaani.org/lzma>.
+ Added lp1225b05.7z to distribution. Get the 7-zip decoder from
+ from <http://www.7-zip.org>.
+ Fixed some broken links in the README file.
+
+version 1.2.25beta06 [February 6, 2008]
+ Refactored png_read_push_finish_row() again, trying to satisfy Coverity.
+ Fixed potential NULL dereference of png_ptr in png_destroy_write_struct();
+ clarified potential NULL dereference of png_ptr in png_destroy_read_struct();
+ fixed potential NULL dereference of info_ptr in png_handle_bKGD();
+ fixed potential NULL dereference of user_png_ver[] in
+ png_create_write_struct_2(). (Coverity)
+
+version 1.2.25rc02 [February 10, 2008]
+ Reset png_ptr->pass in png_read_push_finish_row() before break.
+ Changed "pass" from png_byte to int.
+
+version 1.2.25 and 1.0.31 [February 18, 2008]
+ No changes.
+
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
diff --git a/Build/source/libs/libpng/INSTALL b/Build/source/libs/libpng/INSTALL
index 78c9e02936f..3ab8f42f72f 100644
--- a/Build/source/libs/libpng/INSTALL
+++ b/Build/source/libs/libpng/INSTALL
@@ -1,5 +1,5 @@
-Installing libpng version 1.2.24 - December 14, 2007
+Installing libpng version 1.2.25 - February 18, 2008
On Unix/Linux and similar systems, you can simply type
@@ -44,7 +44,7 @@ to have access to the zlib.h and zconf.h include files that
correspond to the version of zlib that's installed.
You can rename the directories that you downloaded (they
-might be called "libpng-1.2.24" or "lpng109" and "zlib-1.2.1"
+might be called "libpng-1.2.25" or "lpng109" and "zlib-1.2.1"
or "zlib121") so that you have directories called "zlib" and "libpng".
Your directory structure should look like this:
@@ -101,9 +101,9 @@ include
CMakeLists.txt => "cmake" script
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.elf => Linux/ELF makefile symbol versioning,
- gcc, creates libpng12.so.0.1.2.24)
+ gcc, creates libpng12.so.0.1.2.25)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.24)
+ (gcc, creates libpng12.so.0.1.2.25)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
ansi2knr (Requires ansi2knr.c from
@@ -125,14 +125,14 @@ include
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.sggcc => Silicon Graphics (gcc,
- creates libpng12.so.0.1.2.24)
+ creates libpng12.so.0.1.2.25)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile (gcc,
- creates libpng12.so.0.1.2.24)
+ creates libpng12.so.0.1.2.25)
makefile.solaris-x86 => Solaris/intelMMX 2.X makefile (gcc,
- creates libpng12.so.0.1.2.24)
+ creates libpng12.so.0.1.2.25)
makefile.so9 => Solaris 9 makefile (gcc,
- creates libpng12.so.0.1.2.24)
+ creates libpng12.so.0.1.2.25)
makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
diff --git a/Build/source/libs/libpng/KNOWNBUG b/Build/source/libs/libpng/KNOWNBUG
index d39dd1ec313..a2f8458ea8f 100644
--- a/Build/source/libs/libpng/KNOWNBUG
+++ b/Build/source/libs/libpng/KNOWNBUG
@@ -1,5 +1,5 @@
-Known bugs in libpng version 1.2.24
+Known bugs in libpng version 1.2.25
1. February 23, 2006: The custom makefiles don't build libpng with -lz.
diff --git a/Build/source/libs/libpng/LICENSE b/Build/source/libs/libpng/LICENSE
index 6b81b55a63c..7f5c259be2b 100644
--- a/Build/source/libs/libpng/LICENSE
+++ b/Build/source/libs/libpng/LICENSE
@@ -8,8 +8,8 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng versions 1.2.6, August 15, 2004, through 1.2.24, December 14, 2007, are
-Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
+libpng versions 1.2.6, August 15, 2004, through 1.2.25, February 18, 2008, are
+Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -106,4 +106,4 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-December 14, 2007
+February 18, 2008
diff --git a/Build/source/libs/libpng/README b/Build/source/libs/libpng/README
index 6f84c69f0d8..eb072aa52e8 100644
--- a/Build/source/libs/libpng/README
+++ b/Build/source/libs/libpng/README
@@ -1,11 +1,12 @@
-README for libpng version 1.2.24 - December 14, 2007 (shared library 12.0)
+README for libpng version 1.2.25 - February 18, 2008 (shared library 12.0)
See the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng.
-Libpng comes in several distribution formats. Get libpng-*.tar.gz
-or libpng-*.tar.bz2 if you want UNIX-style line endings in the text
-files, or lpng*.zip if you want DOS-style line endings.
+Libpng comes in several distribution formats. Get libpng-*.tar.gz,
+libpng-*.tar.lzma, or libpng-*.tar.bz2 if you want UNIX-style line
+endings in the text files, or lpng*.7z lpng*.zip if you want DOS-style
+line endings.
Version 0.89 was the first official release of libpng. Don't let the
fact that it's the first release fool you. The libpng library has been in
@@ -77,12 +78,12 @@ compression library that is useful for more things than just PNG files.
You can use zlib as a drop-in replacement for fread() and fwrite() if
you are so inclined.
-zlib should be available at the same place that libpng is, or at.
-ftp://ftp.info-zip.org/pub/infozip/zlib
+zlib should be available at the same place that libpng is, or at
+ftp://ftp.simplesystems.org/pub/png/src/
You may also want a copy of the PNG specification. It is available
as an RFC, a W3C Recommendation, and an ISO/IEC Standard. You can find
-these at http://www.libpng.org/pub/png/documents/
+these at http://www.libpng.org/pub/png/pngdocs.html
This code is currently being archived at libpng.sf.net in the
[DOWNLOAD] area, and on CompuServe, Lib 20 (PNG SUPPORT)
@@ -190,11 +191,11 @@ Files in this distribution:
descrip.mms => VMS makefile for MMS or MMK
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.elf => Linux/ELF makefile symbol versioning,
- gcc, creates libpng12.so.0.1.2.24)
+ gcc, creates libpng12.so.0.1.2.25)
makefile.linux => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.24)
+ (gcc, creates libpng12.so.0.1.2.25)
makefile.gcmmx => Linux/ELF makefile
- (gcc, creates libpng12.so.0.1.2.24,
+ (gcc, creates libpng12.so.0.1.2.25,
uses assembler code tuned for Intel MMX platform)
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with
@@ -216,12 +217,12 @@ Files in this distribution:
makefile.openbsd => OpenBSD makefile
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
makefile.sggcc => Silicon Graphics
- (gcc, creates libpng12.so.0.1.2.24)
+ (gcc, creates libpng12.so.0.1.2.25)
makefile.sunos => Sun makefile
makefile.solaris => Solaris 2.X makefile
- (gcc, creates libpng12.so.0.1.2.24)
+ (gcc, creates libpng12.so.0.1.2.25)
makefile.so9 => Solaris 9 makefile
- (gcc, creates libpng12.so.0.1.2.24)
+ (gcc, creates libpng12.so.0.1.2.25)
makefile.32sunu => Sun Ultra 32-bit makefile
makefile.64sunu => Sun Ultra 64-bit makefile
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
@@ -256,7 +257,7 @@ Good luck, and happy coding.
-Andreas Eric Dilger (former maintainer, 1996-1997)
Internet: adilger at enel.ucalgary.ca
- Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/
+ Web: http://members.shaw.ca/adilger/
-Guy Eric Schalnat (original author and former maintainer, 1995-1996)
(formerly of Group 42, Inc)
diff --git a/Build/source/libs/libpng/Y2KINFO b/Build/source/libs/libpng/Y2KINFO
index 829b511e45c..075599c0d2c 100644
--- a/Build/source/libs/libpng/Y2KINFO
+++ b/Build/source/libs/libpng/Y2KINFO
@@ -1,13 +1,13 @@
Y2K compliance in libpng:
=========================
- December 14, 2007
+ February 18, 2008
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
- upward through 1.2.24 are Y2K compliant. It is my belief that earlier
+ upward through 1.2.25 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer
diff --git a/Build/source/libs/libpng/libpng-1.2.24.txt b/Build/source/libs/libpng/libpng-1.2.25.txt
index 5b8dc53b970..e922f24e467 100644
--- a/Build/source/libs/libpng/libpng-1.2.24.txt
+++ b/Build/source/libs/libpng/libpng-1.2.25.txt
@@ -1,9 +1,9 @@
libpng.txt - A description on how to use and modify libpng
- libpng version 1.2.24 - December 14, 2007
+ libpng version 1.2.25 - February 18, 2008
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
- Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ Copyright (c) 1998-2008 Glenn Randers-Pehrson
For conditions of distribution and use, see copyright
notice in png.h.
@@ -2796,13 +2796,13 @@ application:
IX. Y2K Compliance in libpng
-December 14, 2007
+February 18, 2008
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.2.24 are Y2K compliant. It is my belief that earlier
+upward through 1.2.25 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that
diff --git a/Build/source/libs/libpng/libpng.3 b/Build/source/libs/libpng/libpng.3
index 060cdc1426f..ae397476e1d 100644
--- a/Build/source/libs/libpng/libpng.3
+++ b/Build/source/libs/libpng/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "December 14, 2007"
+.TH LIBPNG 3 "February 18, 2008"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.24
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.25
.SH SYNOPSIS
\fB
#include <png.h>\fP
@@ -410,10 +410,10 @@ Following is a copy of the libpng.txt file that accompanies libpng.
.SH LIBPNG.TXT
libpng.txt - A description on how to use and modify libpng
- libpng version 1.2.24 - December 14, 2007
+ libpng version 1.2.25 - February 18, 2008
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
- Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ Copyright (c) 1998-2008 Glenn Randers-Pehrson
For conditions of distribution and use, see copyright
notice in png.h.
@@ -3206,13 +3206,13 @@ application:
.SH IX. Y2K Compliance in libpng
-December 14, 2007
+February 18, 2008
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.2.24 are Y2K compliant. It is my belief that earlier
+upward through 1.2.25 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that
@@ -3426,6 +3426,8 @@ the first widely used release:
1.2.24beta01-02 13 10224 12.so.0.24[.0]
1.2.24rc01 13 10224 12.so.0.24[.0]
1.2.24 13 10224 12.so.0.24[.0]
+ 1.2.25beta01-06 13 10225 12.so.0.25[.0]
+ 1.2.25rc01-02 13 10225 12.so.0.25[.0]
Henceforth the source version will match the shared-library minor
and patch numbers; the shared-library major version number will be
@@ -3481,7 +3483,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
-Libpng version 1.2.24 - December 14, 2007:
+Libpng version 1.2.25 - February 18, 2008:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
@@ -3502,8 +3504,8 @@ included in the libpng distribution, the latter shall prevail.)
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng versions 1.2.6, August 15, 2004, through 1.2.24, December 14, 2007, are
-Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
+libpng versions 1.2.6, August 15, 2004, through 1.2.25, February 18, 2008, are
+Copyright (c) 2004,2006-2008 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -3601,7 +3603,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-December 14, 2007
+February 18, 2008
.\" end of man page
diff --git a/Build/source/libs/libpng/libpngpf.3 b/Build/source/libs/libpng/libpngpf.3
index 1e360de1295..a5b09b6e4eb 100644
--- a/Build/source/libs/libpng/libpngpf.3
+++ b/Build/source/libs/libpng/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "December 14, 2007"
+.TH LIBPNGPF 3 "February 18, 2008"
.SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.24
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.25
(private functions)
.SH SYNOPSIS
\fB#include <png.h>\fP
diff --git a/Build/source/libs/libpng/png.5 b/Build/source/libs/libpng/png.5
index 9f33460582c..6b5aa3a03a5 100644
--- a/Build/source/libs/libpng/png.5
+++ b/Build/source/libs/libpng/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "December 14, 2007"
+.TH PNG 5 "February 18, 2008"
.SH NAME
png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION
diff --git a/Build/source/libs/libpng/png.c b/Build/source/libs/libpng/png.c
index 4d25559cf1d..cc31ae8d34c 100644
--- a/Build/source/libs/libpng/png.c
+++ b/Build/source/libs/libpng/png.c
@@ -13,7 +13,7 @@
#include "png.h"
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_24 Your_png_h_is_not_version_1_2_24;
+typedef version_1_2_25 Your_png_h_is_not_version_1_2_25;
/* Version information for C files. This had better match the version
* string defined in png.h. */
@@ -693,8 +693,8 @@ png_charp PNGAPI
png_get_copyright(png_structp png_ptr)
{
png_ptr = png_ptr; /* silence compiler warning about unused png_ptr */
- return ((png_charp) "\n libpng version 1.2.24 - December 14, 2007\n\
- Copyright (c) 1998-2007 Glenn Randers-Pehrson\n\
+ return ((png_charp) "\n libpng version 1.2.25 - February 18, 2008\n\
+ Copyright (c) 1998-2008 Glenn Randers-Pehrson\n\
Copyright (c) 1996-1997 Andreas Dilger\n\
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
}
diff --git a/Build/source/libs/libpng/png.h b/Build/source/libs/libpng/png.h
index 3ac393ea343..6e538552cb5 100644
--- a/Build/source/libs/libpng/png.h
+++ b/Build/source/libs/libpng/png.h
@@ -1,15 +1,15 @@
/* png.h - header file for PNG reference library
*
- * libpng version 1.2.24 - December 14, 2007
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * libpng version 1.2.25 - February 18, 2008
+ * Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
* Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- * libpng versions 0.97, January 1998, through 1.2.24 - December 14, 2007: Glenn
+ * libpng versions 0.97, January 1998, through 1.2.25 - February 18, 2008: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@@ -175,6 +175,8 @@
* 1.2.24beta01-02 13 10224 12.so.0.24[.0]
* 1.2.24rc01 13 10224 12.so.0.24[.0]
* 1.2.24 13 10224 12.so.0.24[.0]
+ * 1.2.25beta01-06 13 10225 12.so.0.25[.0]
+ * 1.2.25rc01-02 13 10225 12.so.0.25[.0]
*
* Henceforth the source version will match the shared-library major
* and minor numbers; the shared-library major version number will be
@@ -204,8 +206,8 @@
* If you modify libpng you may insert additional notices immediately following
* this sentence.
*
- * libpng versions 1.2.6, August 15, 2004, through 1.2.24, December 14, 2007, are
- * Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
+ * libpng versions 1.2.6, August 15, 2004, through 1.2.25, February 18, 2008, are
+ * Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.2.5
* with the following individual added to the list of Contributing Authors:
*
@@ -316,13 +318,13 @@
* Y2K compliance in libpng:
* =========================
*
- * December 14, 2007
+ * February 18, 2008
*
* Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration.
*
* This is your unofficial assurance that libpng from version 0.71 and
- * upward through 1.2.24 are Y2K compliant. It is my belief that earlier
+ * upward through 1.2.25 are Y2K compliant. It is my belief that earlier
* versions were also Y2K compliant.
*
* Libpng only has three year fields. One is a 2-byte unsigned integer
@@ -378,9 +380,9 @@
*/
/* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.24"
+#define PNG_LIBPNG_VER_STRING "1.2.25"
#define PNG_HEADER_VERSION_STRING \
- " libpng version 1.2.24 - December 14, 2007\n"
+ " libpng version 1.2.25 - February 18, 2008\n"
#define PNG_LIBPNG_VER_SONUM 0
#define PNG_LIBPNG_VER_DLLNUM 13
@@ -388,7 +390,7 @@
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
#define PNG_LIBPNG_VER_MAJOR 1
#define PNG_LIBPNG_VER_MINOR 2
-#define PNG_LIBPNG_VER_RELEASE 24
+#define PNG_LIBPNG_VER_RELEASE 25
/* This should match the numeric part of the final component of
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
@@ -416,7 +418,7 @@
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
* version 1.0.0 was mis-numbered 100 instead of 10000). From
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */
-#define PNG_LIBPNG_VER 10224 /* 1.2.24 */
+#define PNG_LIBPNG_VER 10225 /* 1.2.25 */
#ifndef PNG_VERSION_INFO_ONLY
/* include the compression library's header */
@@ -1430,7 +1432,7 @@ struct png_struct_def
/* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number.
*/
-typedef png_structp version_1_2_24;
+typedef png_structp version_1_2_25;
typedef png_struct FAR * FAR * png_structpp;
diff --git a/Build/source/libs/libpng/pngconf.h b/Build/source/libs/libpng/pngconf.h
index c40507446fe..b8e6844c1c8 100644
--- a/Build/source/libs/libpng/pngconf.h
+++ b/Build/source/libs/libpng/pngconf.h
@@ -1,9 +1,9 @@
/* pngconf.h - machine configurable file for libpng
*
- * libpng version 1.2.24 - December 14, 2007
+ * libpng version 1.2.25 - February 18, 2008
* For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*/
diff --git a/Build/source/libs/libpng/pngpread.c b/Build/source/libs/libpng/pngpread.c
index 8f4b7d1795c..a02cdfcb238 100644
--- a/Build/source/libs/libpng/pngpread.c
+++ b/Build/source/libs/libpng/pngpread.c
@@ -1,9 +1,9 @@
/* pngpread.c - read a png file in push mode
*
- * Last changed in libpng 1.2.23 [November 6, 2007]
+ * Last changed in libpng 1.2.25 [February 18, 2008]
* For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*/
@@ -28,7 +28,7 @@ void PNGAPI
png_process_data(png_structp png_ptr, png_infop info_ptr,
png_bytep buffer, png_size_t buffer_size)
{
- if(png_ptr == NULL) return;
+ if(png_ptr == NULL || info_ptr == NULL) return;
png_push_restore_buffer(png_ptr, buffer, buffer_size);
while (png_ptr->buffer_size)
@@ -1018,32 +1018,37 @@ png_read_push_finish_row(png_structp png_ptr)
png_ptr->rowbytes + 1);
do
{
- png_ptr->pass++;
- if ((png_ptr->pass == 1 && png_ptr->width < 5) ||
- (png_ptr->pass == 3 && png_ptr->width < 3) ||
- (png_ptr->pass == 5 && png_ptr->width < 2))
- png_ptr->pass++;
-
- if (png_ptr->pass > 7)
- png_ptr->pass--;
- if (png_ptr->pass >= 7)
- break;
-
- png_ptr->iwidth = (png_ptr->width +
- png_pass_inc[png_ptr->pass] - 1 -
- png_pass_start[png_ptr->pass]) /
- png_pass_inc[png_ptr->pass];
-
- png_ptr->irowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,
- png_ptr->iwidth) + 1;
-
- if (png_ptr->transformations & PNG_INTERLACE)
- break;
-
- png_ptr->num_rows = (png_ptr->height +
- png_pass_yinc[png_ptr->pass] - 1 -
- png_pass_ystart[png_ptr->pass]) /
- png_pass_yinc[png_ptr->pass];
+ int pass;
+ pass = png_ptr->pass;
+ pass++;
+ if ((pass == 1 && png_ptr->width < 5) ||
+ (pass == 3 && png_ptr->width < 3) ||
+ (pass == 5 && png_ptr->width < 2))
+ pass++;
+
+ if (pass > 7)
+ pass--;
+ png_ptr->pass = (png_byte) pass;
+ if (pass < 7)
+ {
+ png_ptr->iwidth = (png_ptr->width +
+ png_pass_inc[pass] - 1 -
+ png_pass_start[pass]) /
+ png_pass_inc[pass];
+
+ png_ptr->irowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,
+ png_ptr->iwidth) + 1;
+
+ if (png_ptr->transformations & PNG_INTERLACE)
+ break;
+
+ png_ptr->num_rows = (png_ptr->height +
+ png_pass_yinc[pass] - 1 -
+ png_pass_ystart[pass]) /
+ png_pass_yinc[pass];
+ }
+ else
+ break;
} while (png_ptr->iwidth == 0 || png_ptr->num_rows == 0);
}
@@ -1517,9 +1522,9 @@ png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32
&png_ptr->unknown_chunk, 1);
}
}
-#else
- png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
+ else
#endif
+ png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
png_free(png_ptr, png_ptr->unknown_chunk.data);
png_ptr->unknown_chunk.data = NULL;
}
diff --git a/Build/source/libs/libpng/pngread.c b/Build/source/libs/libpng/pngread.c
index 5de5e563550..bd8bcd98abc 100644
--- a/Build/source/libs/libpng/pngread.c
+++ b/Build/source/libs/libpng/pngread.c
@@ -1,9 +1,9 @@
/* pngread.c - read a PNG file
*
- * Last changed in libpng 1.2.24 December 14, 2007
+ * Last changed in libpng 1.2.25 [February 18, 2008]
* For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
@@ -89,12 +89,18 @@ png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn);
- i=0;
- do
+ if(user_png_ver)
{
- if(user_png_ver[i] != png_libpng_ver[i])
+ i=0;
+ do
+ {
+ if(user_png_ver[i] != png_libpng_ver[i])
+ png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
+ } while (png_libpng_ver[i++]);
+ }
+ else
png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
- } while (png_libpng_ver[i++]);
+
if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
{
@@ -318,7 +324,7 @@ png_read_init_3(png_structpp ptr_ptr, png_const_charp user_png_ver,
void PNGAPI
png_read_info(png_structp png_ptr, png_infop info_ptr)
{
- if(png_ptr == NULL) return;
+ if(png_ptr == NULL || info_ptr == NULL) return;
png_debug(1, "in png_read_info\n");
/* If we haven't checked all of the PNG signature bytes, do so now. */
if (png_ptr->sig_bytes < 8)
@@ -1107,11 +1113,14 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
if (png_ptr_ptr != NULL)
{
png_ptr = *png_ptr_ptr;
+ }
+ if (png_ptr == NULL)
+ return;
+
#ifdef PNG_USER_MEM_SUPPORTED
- free_fn = png_ptr->free_fn;
- mem_ptr = png_ptr->mem_ptr;
+ free_fn = png_ptr->free_fn;
+ mem_ptr = png_ptr->mem_ptr;
#endif
- }
if (info_ptr_ptr != NULL)
info_ptr = *info_ptr_ptr;
@@ -1150,16 +1159,13 @@ png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr,
*end_info_ptr_ptr = NULL;
}
- if (png_ptr != NULL)
- {
#ifdef PNG_USER_MEM_SUPPORTED
- png_destroy_struct_2((png_voidp)png_ptr, (png_free_ptr)free_fn,
- (png_voidp)mem_ptr);
+ png_destroy_struct_2((png_voidp)png_ptr, (png_free_ptr)free_fn,
+ (png_voidp)mem_ptr);
#else
- png_destroy_struct((png_voidp)png_ptr);
+ png_destroy_struct((png_voidp)png_ptr);
#endif
- *png_ptr_ptr = NULL;
- }
+ *png_ptr_ptr = NULL;
}
/* free all memory used by the read (old method) */
diff --git a/Build/source/libs/libpng/pngrtran.c b/Build/source/libs/libpng/pngrtran.c
index cda392154e5..c020b51b3d2 100644
--- a/Build/source/libs/libpng/pngrtran.c
+++ b/Build/source/libs/libpng/pngrtran.c
@@ -1,9 +1,9 @@
/* pngrtran.c - transforms the data in a row for PNG readers
*
- * Last changed in libpng 1.2.22 [October 13, 2007]
+ * Last changed in libpng 1.2.25 [February 18, 2008]
* For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
@@ -964,6 +964,14 @@ png_init_read_transformations(png_structp png_ptr)
palette[i].blue = png_ptr->gamma_table[palette[i].blue];
}
}
+ /* Prevent the transformations being done again, and make sure
+ * that the now spurious alpha channel is stripped - the code
+ * has just reduced background composition and gamma correction
+ * to a simply alpha channel strip.
+ */
+ png_ptr->transformations &= ~PNG_BACKGROUND;
+ png_ptr->transformations &= ~PNG_GAMMA;
+ png_ptr->transformations |= PNG_STRIP_ALPHA;
}
/* if (png_ptr->background_gamma_type!=PNG_BACKGROUND_GAMMA_UNKNOWN) */
else
@@ -1038,6 +1046,9 @@ png_init_read_transformations(png_structp png_ptr)
palette[i].green = png_ptr->gamma_table[palette[i].green];
palette[i].blue = png_ptr->gamma_table[palette[i].blue];
}
+
+ /* Done the gamma correction. */
+ png_ptr->transformations &= ~PNG_GAMMA;
}
}
#if defined(PNG_READ_BACKGROUND_SUPPORTED)
@@ -1075,6 +1086,10 @@ png_init_read_transformations(png_structp png_ptr)
png_ptr->trans[i], back.blue);
}
}
+
+ /* Handled alpha, still need to strip the channel. */
+ png_ptr->transformations &= ~PNG_BACKGROUND;
+ png_ptr->transformations |= PNG_STRIP_ALPHA;
}
#endif /* PNG_READ_BACKGROUND_SUPPORTED */
diff --git a/Build/source/libs/libpng/pngrutil.c b/Build/source/libs/libpng/pngrutil.c
index 5e40aca481e..990e69802b1 100644
--- a/Build/source/libs/libpng/pngrutil.c
+++ b/Build/source/libs/libpng/pngrutil.c
@@ -1,9 +1,9 @@
/* pngrutil.c - utilities to read a PNG file
*
- * Last changed in libpng 1.2.23 [November 6, 2007]
+ * Last changed in libpng 1.2.25 [February 18, 2008]
* For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
@@ -230,7 +230,7 @@ png_decompress_chunk(png_structp png_ptr, int comp_type,
text_size = (png_size_t)(chunklength - (text - chunkdata) - 1);
text_size = png_sizeof(msg) > text_size ? text_size :
png_sizeof(msg);
- png_memcpy(text + prefix_size, msg, text_size + 1);
+ png_memcpy(text + prefix_size, msg, text_size);
break;
}
if (!png_ptr->zstream.avail_out || ret == Z_STREAM_END)
@@ -1393,7 +1393,7 @@ png_handle_bKGD(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
{
png_ptr->background.index = buf[0];
- if(info_ptr->num_palette)
+ if (info_ptr && info_ptr->num_palette)
{
if(buf[0] > info_ptr->num_palette)
{
@@ -1792,7 +1792,7 @@ png_handle_sCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
#else
#ifdef PNG_FIXED_POINT_SUPPORTED
sheight = (png_charp)png_malloc_warn(png_ptr, png_strlen(ep) + 1);
- if (swidth == NULL)
+ if (sheight == NULL)
{
png_warning(png_ptr, "Out of memory while processing sCAL chunk height");
return;
@@ -2249,9 +2249,9 @@ png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
&png_ptr->unknown_chunk, 1);
}
}
-#else
- png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
+ else
#endif
+ png_set_unknown_chunks(png_ptr, info_ptr, &png_ptr->unknown_chunk, 1);
png_free(png_ptr, png_ptr->unknown_chunk.data);
png_ptr->unknown_chunk.data = NULL;
}
diff --git a/Build/source/libs/libpng/pngset.c b/Build/source/libs/libpng/pngset.c
index f8f9b7e3b3e..9301dd3274a 100644
--- a/Build/source/libs/libpng/pngset.c
+++ b/Build/source/libs/libpng/pngset.c
@@ -1,9 +1,9 @@
/* pngset.c - storage of image information into info struct
*
- * Last changed in libpng 1.2.24 [December 14, 2007]
+ * Last changed in libpng 1.2.25 [February 18, 2008]
* For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
@@ -488,6 +488,7 @@ png_set_sCAL_s(png_structp png_ptr, png_infop info_ptr,
{
png_warning(png_ptr,
"Memory allocation failed while processing sCAL.");
+ return;
}
png_memcpy(info_ptr->scal_s_width, swidth, (png_size_t)length);
@@ -499,9 +500,9 @@ png_set_sCAL_s(png_structp png_ptr, png_infop info_ptr,
png_free (png_ptr, info_ptr->scal_s_width);
png_warning(png_ptr,
"Memory allocation failed while processing sCAL.");
+ return;
}
png_memcpy(info_ptr->scal_s_height, sheight, (png_size_t)length);
-
info_ptr->valid |= PNG_INFO_sCAL;
#ifdef PNG_FREE_ME_SUPPORTED
info_ptr->free_me |= PNG_FREE_SCAL;
@@ -983,6 +984,7 @@ png_set_sPLT(png_structp png_ptr,
{
png_warning(png_ptr,
"Out of memory while processing sPLT chunk");
+ continue;
}
png_memcpy(to->name, from->name, length);
to->entries = (png_sPLT_entryp)png_malloc_warn(png_ptr,
@@ -993,6 +995,7 @@ png_set_sPLT(png_structp png_ptr,
"Out of memory while processing sPLT chunk");
png_free(png_ptr,to->name);
to->name = NULL;
+ continue;
}
png_memcpy(to->entries, from->entries,
from->nentries * png_sizeof(png_sPLT_entry));
diff --git a/Build/source/libs/libpng/pngtest.c b/Build/source/libs/libpng/pngtest.c
index dd2946bf46f..51073220e2d 100644
--- a/Build/source/libs/libpng/pngtest.c
+++ b/Build/source/libs/libpng/pngtest.c
@@ -1553,4 +1553,4 @@ main(int argc, char *argv[])
}
/* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_24 your_png_h_is_not_version_1_2_24;
+typedef version_1_2_25 your_png_h_is_not_version_1_2_25;
diff --git a/Build/source/libs/libpng/pngwrite.c b/Build/source/libs/libpng/pngwrite.c
index b1f6a593aae..8b01025f540 100644
--- a/Build/source/libs/libpng/pngwrite.c
+++ b/Build/source/libs/libpng/pngwrite.c
@@ -1,9 +1,9 @@
/* pngwrite.c - general routines to write a PNG file
*
- * Last changed in libpng 1.2.24 December 14, 2007
+ * Last changed in libpng 1.2.25 [February 18, 2008]
* For conditions of distribution and use, see copyright notice in png.h
- * Copyright (c) 1998-2007 Glenn Randers-Pehrson
+ * Copyright (c) 1998-2008 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*/
@@ -482,12 +482,15 @@ png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr,
#endif /* PNG_USER_MEM_SUPPORTED */
png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn);
- i=0;
- do
+ if(user_png_ver)
{
- if(user_png_ver[i] != png_libpng_ver[i])
- png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
- } while (png_libpng_ver[i++]);
+ i=0;
+ do
+ {
+ if(user_png_ver[i] != png_libpng_ver[i])
+ png_ptr->flags |= PNG_FLAG_LIBRARY_MISMATCH;
+ } while (png_libpng_ver[i++]);
+ }
if (png_ptr->flags & PNG_FLAG_LIBRARY_MISMATCH)
{
@@ -1000,21 +1003,32 @@ png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
#endif
}
+#ifdef PNG_USER_MEM_SUPPORTED
+ if (png_ptr != NULL)
+ {
+ free_fn = png_ptr->free_fn;
+ mem_ptr = png_ptr->mem_ptr;
+ }
+#endif
+
if (info_ptr_ptr != NULL)
info_ptr = *info_ptr_ptr;
if (info_ptr != NULL)
{
- png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
+ if (png_ptr != NULL)
+ {
+ png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
- if (png_ptr->num_chunk_list)
- {
- png_free(png_ptr, png_ptr->chunk_list);
- png_ptr->chunk_list=NULL;
- png_ptr->num_chunk_list=0;
- }
+ if (png_ptr->num_chunk_list)
+ {
+ png_free(png_ptr, png_ptr->chunk_list);
+ png_ptr->chunk_list=NULL;
+ png_ptr->num_chunk_list=0;
+ }
#endif
+ }
#ifdef PNG_USER_MEM_SUPPORTED
png_destroy_struct_2((png_voidp)info_ptr, (png_free_ptr)free_fn,
diff --git a/Build/source/libs/obsdcompat/.cvsignore b/Build/source/libs/obsdcompat/.cvsignore
deleted file mode 100644
index f3c7a7c5da6..00000000000
--- a/Build/source/libs/obsdcompat/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/Build/source/libs/obsdcompat/README b/Build/source/libs/obsdcompat/README
index 9bc9a4ad2b8..0ed8c5191c7 100644
--- a/Build/source/libs/obsdcompat/README
+++ b/Build/source/libs/obsdcompat/README
@@ -1,6 +1,6 @@
OpenBSD-Compat for pdfTeX v0.2
==============================
-$Id: README 108 2007-05-20 20:03:54Z ms $
+$Id$
Herein is a (heavily butchered) version of the openbsd-compat "library" of
openssh 4.6 for use with pdfTeX. All files have their respective copyrights and
@@ -8,4 +8,4 @@ licenses (either BSD or public domain). Check them for license etc.
Please send bug reports, offers of help, etc. to martin@pdftex.org
-Martin Schröder, $Date: 2007-05-20 22:05:14 +0200 (So, 20 Mai 2007) $
+Martin Schröder, $Date$
diff --git a/Build/source/libs/xpdf/xpdf/Decrypt.h b/Build/source/libs/xpdf/xpdf/Decrypt.h
index 56f34b77f26..f5674213f31 100644
--- a/Build/source/libs/xpdf/xpdf/Decrypt.h
+++ b/Build/source/libs/xpdf/xpdf/Decrypt.h
@@ -73,7 +73,7 @@ public:
CryptAlgorithm algoA, int keyLength,
int objNum, int objGen);
virtual ~DecryptStream();
- virtual StreamKind getKind() { return strWeird; }
+ virtual StreamKind getKind() { return strCrypt; }
virtual void reset();
virtual int getChar();
virtual int lookChar();
diff --git a/Build/source/libs/xpdf/xpdf/Makefile.in b/Build/source/libs/xpdf/xpdf/Makefile.in
index 80d2fe8a421..a2becd12209 100644
--- a/Build/source/libs/xpdf/xpdf/Makefile.in
+++ b/Build/source/libs/xpdf/xpdf/Makefile.in
@@ -34,13 +34,13 @@ kpse_include ../../texk/make/library.mk
#------------------------------------------------------------------------
PDFTOEPDF_OBJS = \
- Array.o BuiltinFont.o BuiltinFontTables.o CMap.o \
- Catalog.o CharCodeToUnicode.o Decrypt.o Dict.o Error.o \
- FontEncodingTables.o GfxFont.o GfxState.o\
- GlobalParams.o JArithmeticDecoder.o JBIG2Stream.o JPXStream.o Lexer.o Link.o \
- NameToCharCode.o Object.o OutputDev.o Outline.o PDFDoc.o Page.o \
- Parser.o PDFDocEncoding.o Stream.o UnicodeMap.o XRef.o Function.o \
- PSTokenizer.o SecurityHandler.o
+ Array.o BuiltinFont.o BuiltinFontTables.o Catalog.o \
+ CharCodeToUnicode.o CMap.o Decrypt.o Dict.o Error.o \
+ FontEncodingTables.o Function.o GfxFont.o GfxState.o\
+ GlobalParams.o JArithmeticDecoder.o JBIG2Stream.o JPXStream.o \
+ Lexer.o Link.o NameToCharCode.o Object.o Outline.o OutputDev.o \
+ Page.o Parser.o PDFDocEncoding.o PDFDoc.o PSTokenizer.o \
+ SecurityHandler.o Stream.o UnicodeMap.o XRef.o
libxpdf.a: $(PDFTOEPDF_OBJS)
rm -f $@
diff --git a/Build/source/libs/xpdf/xpdf/Stream.cc b/Build/source/libs/xpdf/xpdf/Stream.cc
index f96b52488c0..812d00c39a3 100644
--- a/Build/source/libs/xpdf/xpdf/Stream.cc
+++ b/Build/source/libs/xpdf/xpdf/Stream.cc
@@ -1243,23 +1243,26 @@ CCITTFaxStream::CCITTFaxStream(Stream *strA, int encodingA, GBool endOfLineA,
columns = columnsA;
if (columns < 1) {
columns = 1;
- }
- if (columns + 4 <= 0) {
- columns = INT_MAX - 4;
+ } else if (columns > INT_MAX - 2) {
+ columns = INT_MAX - 2;
}
rows = rowsA;
endOfBlock = endOfBlockA;
black = blackA;
- refLine = (short *)gmallocn(columns + 3, sizeof(short));
- codingLine = (short *)gmallocn(columns + 2, sizeof(short));
+ // 0 <= codingLine[0] < codingLine[1] < ... < codingLine[n] = columns
+ // ---> max codingLine size = columns + 1
+ // refLine has one extra guard entry at the end
+ // ---> max refLine size = columns + 2
+ codingLine = (int *)gmallocn(columns + 1, sizeof(int));
+ refLine = (int *)gmallocn(columns + 2, sizeof(int));
eof = gFalse;
row = 0;
nextLine2D = encoding < 0;
inputBits = 0;
- codingLine[0] = 0;
- codingLine[1] = refLine[2] = columns;
- a0 = 1;
+ codingLine[0] = columns;
+ a0i = 0;
+ outputBits = 0;
buf = EOF;
}
@@ -1278,9 +1281,9 @@ void CCITTFaxStream::reset() {
row = 0;
nextLine2D = encoding < 0;
inputBits = 0;
- codingLine[0] = 0;
- codingLine[1] = columns;
- a0 = 1;
+ codingLine[0] = columns;
+ a0i = 0;
+ outputBits = 0;
buf = EOF;
// skip any initial zero bits and end-of-line marker, and get the 2D
@@ -1297,211 +1300,230 @@ void CCITTFaxStream::reset() {
}
}
+inline void CCITTFaxStream::addPixels(int a1, int blackPixels) {
+ if (a1 > codingLine[a0i]) {
+ if (a1 > columns) {
+ error(getPos(), "CCITTFax row is wrong length (%d)", a1);
+ err = gTrue;
+ a1 = columns;
+ }
+ if ((a0i & 1) ^ blackPixels) {
+ ++a0i;
+ }
+ codingLine[a0i] = a1;
+ }
+}
+
+inline void CCITTFaxStream::addPixelsNeg(int a1, int blackPixels) {
+ if (a1 > codingLine[a0i]) {
+ if (a1 > columns) {
+ error(getPos(), "CCITTFax row is wrong length (%d)", a1);
+ err = gTrue;
+ a1 = columns;
+ }
+ if ((a0i & 1) ^ blackPixels) {
+ ++a0i;
+ }
+ codingLine[a0i] = a1;
+ } else if (a1 < codingLine[a0i]) {
+ if (a1 < 0) {
+ error(getPos(), "Invalid CCITTFax code");
+ err = gTrue;
+ a1 = 0;
+ }
+ while (a0i > 0 && a1 <= codingLine[a0i - 1]) {
+ --a0i;
+ }
+ codingLine[a0i] = a1;
+ }
+}
+
int CCITTFaxStream::lookChar() {
short code1, code2, code3;
- int a0New;
- GBool err, gotEOL;
- int ret;
- int bits, i;
+ int b1i, blackPixels, i, bits;
+ GBool gotEOL;
- // if at eof just return EOF
- if (eof && codingLine[a0] >= columns) {
- return EOF;
+ if (buf != EOF) {
+ return buf;
}
// read the next row
- err = gFalse;
- if (codingLine[a0] >= columns) {
+ if (outputBits == 0) {
+
+ // if at eof just return EOF
+ if (eof) {
+ return EOF;
+ }
+
+ err = gFalse;
// 2-D encoding
if (nextLine2D) {
- // state:
- // a0New = current position in coding line (0 <= a0New <= columns)
- // codingLine[a0] = last change in coding line
- // (black-to-white if a0 is even,
- // white-to-black if a0 is odd)
- // refLine[b1] = next change in reference line of opposite color
- // to a0
- // invariants:
- // 0 <= codingLine[a0] <= a0New
- // <= refLine[b1] <= refLine[b1+1] <= columns
- // 0 <= a0 <= columns+1
- // refLine[0] = 0
- // refLine[n] = refLine[n+1] = columns
- // -- for some 1 <= n <= columns+1
- // end condition:
- // 0 = codingLine[0] <= codingLine[1] < codingLine[2] < ...
- // < codingLine[n-1] < codingLine[n] = columns
- // -- where 1 <= n <= columns+1
for (i = 0; codingLine[i] < columns; ++i) {
refLine[i] = codingLine[i];
}
- refLine[i] = refLine[i + 1] = columns;
- b1 = 1;
- a0New = codingLine[a0 = 0] = 0;
- do {
+ refLine[i++] = columns;
+ refLine[i] = columns;
+ codingLine[0] = 0;
+ a0i = 0;
+ b1i = 0;
+ blackPixels = 0;
+ // invariant:
+ // refLine[b1i-1] <= codingLine[a0i] < refLine[b1i] < refLine[b1i+1]
+ // <= columns
+ // exception at left edge:
+ // codingLine[a0i = 0] = refLine[b1i = 0] = 0 is possible
+ // exception at right edge:
+ // refLine[b1i] = refLine[b1i+1] = columns is possible
+ while (codingLine[a0i] < columns) {
code1 = getTwoDimCode();
switch (code1) {
case twoDimPass:
- if (refLine[b1] < columns) {
- a0New = refLine[b1 + 1];
- b1 += 2;
+ addPixels(refLine[b1i + 1], blackPixels);
+ if (refLine[b1i + 1] < columns) {
+ b1i += 2;
}
break;
case twoDimHoriz:
- if ((a0 & 1) == 0) {
- code1 = code2 = 0;
+ code1 = code2 = 0;
+ if (blackPixels) {
do {
- code1 += code3 = getWhiteCode();
+ code1 += code3 = getBlackCode();
} while (code3 >= 64);
do {
- code2 += code3 = getBlackCode();
+ code2 += code3 = getWhiteCode();
} while (code3 >= 64);
} else {
- code1 = code2 = 0;
do {
- code1 += code3 = getBlackCode();
+ code1 += code3 = getWhiteCode();
} while (code3 >= 64);
do {
- code2 += code3 = getWhiteCode();
+ code2 += code3 = getBlackCode();
} while (code3 >= 64);
}
- if (code1 > 0 || code2 > 0) {
- if (a0New + code1 <= columns) {
- codingLine[a0 + 1] = a0New + code1;
- } else {
- codingLine[a0 + 1] = columns;
- }
- ++a0;
- if (codingLine[a0] + code2 <= columns) {
- codingLine[a0 + 1] = codingLine[a0] + code2;
- } else {
- codingLine[a0 + 1] = columns;
- }
- ++a0;
- a0New = codingLine[a0];
- while (refLine[b1] <= a0New && refLine[b1] < columns) {
- b1 += 2;
+ addPixels(codingLine[a0i] + code1, blackPixels);
+ if (codingLine[a0i] < columns) {
+ addPixels(codingLine[a0i] + code2, blackPixels ^ 1);
+ }
+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+ b1i += 2;
+ }
+ break;
+ case twoDimVertR3:
+ addPixels(refLine[b1i] + 3, blackPixels);
+ blackPixels ^= 1;
+ if (codingLine[a0i] < columns) {
+ ++b1i;
+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+ b1i += 2;
}
}
break;
- case twoDimVert0:
- if (refLine[b1] < columns) {
- a0New = codingLine[++a0] = refLine[b1];
- ++b1;
- while (refLine[b1] <= a0New && refLine[b1] < columns) {
- b1 += 2;
+ case twoDimVertR2:
+ addPixels(refLine[b1i] + 2, blackPixels);
+ blackPixels ^= 1;
+ if (codingLine[a0i] < columns) {
+ ++b1i;
+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+ b1i += 2;
}
- } else {
- a0New = codingLine[++a0] = columns;
}
break;
case twoDimVertR1:
- if (refLine[b1] + 1 < columns) {
- a0New = codingLine[++a0] = refLine[b1] + 1;
- ++b1;
- while (refLine[b1] <= a0New && refLine[b1] < columns) {
- b1 += 2;
+ addPixels(refLine[b1i] + 1, blackPixels);
+ blackPixels ^= 1;
+ if (codingLine[a0i] < columns) {
+ ++b1i;
+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+ b1i += 2;
}
- } else {
- a0New = codingLine[++a0] = columns;
}
break;
- case twoDimVertL1:
- if (refLine[b1] - 1 > a0New || (a0 == 0 && refLine[b1] == 1)) {
- a0New = codingLine[++a0] = refLine[b1] - 1;
- --b1;
- while (refLine[b1] <= a0New && refLine[b1] < columns) {
- b1 += 2;
+ case twoDimVert0:
+ addPixels(refLine[b1i], blackPixels);
+ blackPixels ^= 1;
+ if (codingLine[a0i] < columns) {
+ ++b1i;
+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+ b1i += 2;
}
}
break;
- case twoDimVertR2:
- if (refLine[b1] + 2 < columns) {
- a0New = codingLine[++a0] = refLine[b1] + 2;
- ++b1;
- while (refLine[b1] <= a0New && refLine[b1] < columns) {
- b1 += 2;
+ case twoDimVertL3:
+ addPixelsNeg(refLine[b1i] - 3, blackPixels);
+ blackPixels ^= 1;
+ if (codingLine[a0i] < columns) {
+ if (b1i > 0) {
+ --b1i;
+ } else {
+ ++b1i;
+ }
+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+ b1i += 2;
}
- } else {
- a0New = codingLine[++a0] = columns;
}
break;
case twoDimVertL2:
- if (refLine[b1] - 2 > a0New || (a0 == 0 && refLine[b1] == 2)) {
- a0New = codingLine[++a0] = refLine[b1] - 2;
- --b1;
- while (refLine[b1] <= a0New && refLine[b1] < columns) {
- b1 += 2;
+ addPixelsNeg(refLine[b1i] - 2, blackPixels);
+ blackPixels ^= 1;
+ if (codingLine[a0i] < columns) {
+ if (b1i > 0) {
+ --b1i;
+ } else {
+ ++b1i;
}
- }
- break;
- case twoDimVertR3:
- if (refLine[b1] + 3 < columns) {
- a0New = codingLine[++a0] = refLine[b1] + 3;
- ++b1;
- while (refLine[b1] <= a0New && refLine[b1] < columns) {
- b1 += 2;
+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+ b1i += 2;
}
- } else {
- a0New = codingLine[++a0] = columns;
}
break;
- case twoDimVertL3:
- if (refLine[b1] - 3 > a0New || (a0 == 0 && refLine[b1] == 3)) {
- a0New = codingLine[++a0] = refLine[b1] - 3;
- --b1;
- while (refLine[b1] <= a0New && refLine[b1] < columns) {
- b1 += 2;
+ case twoDimVertL1:
+ addPixelsNeg(refLine[b1i] - 1, blackPixels);
+ blackPixels ^= 1;
+ if (codingLine[a0i] < columns) {
+ if (b1i > 0) {
+ --b1i;
+ } else {
+ ++b1i;
+ }
+ while (refLine[b1i] <= codingLine[a0i] && refLine[b1i] < columns) {
+ b1i += 2;
}
}
break;
case EOF:
+ addPixels(columns, 0);
eof = gTrue;
- codingLine[a0 = 0] = columns;
- return EOF;
+ break;
default:
error(getPos(), "Bad 2D code %04x in CCITTFax stream", code1);
+ addPixels(columns, 0);
err = gTrue;
break;
}
- } while (codingLine[a0] < columns);
+ }
// 1-D encoding
} else {
- codingLine[a0 = 0] = 0;
- while (1) {
+ codingLine[0] = 0;
+ a0i = 0;
+ blackPixels = 0;
+ while (codingLine[a0i] < columns) {
code1 = 0;
- do {
- code1 += code3 = getWhiteCode();
- } while (code3 >= 64);
- codingLine[a0+1] = codingLine[a0] + code1;
- ++a0;
- if (codingLine[a0] >= columns) {
- break;
- }
- code2 = 0;
- do {
- code2 += code3 = getBlackCode();
- } while (code3 >= 64);
- codingLine[a0+1] = codingLine[a0] + code2;
- ++a0;
- if (codingLine[a0] >= columns) {
- break;
+ if (blackPixels) {
+ do {
+ code1 += code3 = getBlackCode();
+ } while (code3 >= 64);
+ } else {
+ do {
+ code1 += code3 = getWhiteCode();
+ } while (code3 >= 64);
}
+ addPixels(codingLine[a0i] + code1, blackPixels);
+ blackPixels ^= 1;
}
}
- if (codingLine[a0] != columns) {
- error(getPos(), "CCITTFax row is wrong length (%d)", codingLine[a0]);
- // force the row to be the correct length
- while (codingLine[a0] > columns) {
- --a0;
- }
- codingLine[++a0] = columns;
- err = gTrue;
- }
-
// byte-align the row
if (byteAlign) {
inputBits &= ~7;
@@ -1560,14 +1582,17 @@ int CCITTFaxStream::lookChar() {
// this if we know the stream contains end-of-line markers because
// the "just plow on" technique tends to work better otherwise
} else if (err && endOfLine) {
- do {
+ while (1) {
+ code1 = lookBits(13);
if (code1 == EOF) {
eof = gTrue;
return EOF;
}
+ if ((code1 >> 1) == 0x001) {
+ break;
+ }
eatBits(1);
- code1 = lookBits(13);
- } while ((code1 >> 1) != 0x001);
+ }
eatBits(12);
if (encoding > 0) {
eatBits(1);
@@ -1575,11 +1600,11 @@ int CCITTFaxStream::lookChar() {
}
}
- a0 = 0;
- outputBits = codingLine[1] - codingLine[0];
- if (outputBits == 0) {
- a0 = 1;
- outputBits = codingLine[2] - codingLine[1];
+ // set up for output
+ if (codingLine[0] > 0) {
+ outputBits = codingLine[a0i = 0];
+ } else {
+ outputBits = codingLine[a0i = 1];
}
++row;
@@ -1587,39 +1612,43 @@ int CCITTFaxStream::lookChar() {
// get a byte
if (outputBits >= 8) {
- ret = ((a0 & 1) == 0) ? 0xff : 0x00;
- if ((outputBits -= 8) == 0) {
- ++a0;
- if (codingLine[a0] < columns) {
- outputBits = codingLine[a0 + 1] - codingLine[a0];
- }
+ buf = (a0i & 1) ? 0x00 : 0xff;
+ outputBits -= 8;
+ if (outputBits == 0 && codingLine[a0i] < columns) {
+ ++a0i;
+ outputBits = codingLine[a0i] - codingLine[a0i - 1];
}
} else {
bits = 8;
- ret = 0;
+ buf = 0;
do {
if (outputBits > bits) {
- i = bits;
- bits = 0;
- if ((a0 & 1) == 0) {
- ret |= 0xff >> (8 - i);
+ buf <<= bits;
+ if (!(a0i & 1)) {
+ buf |= 0xff >> (8 - bits);
}
- outputBits -= i;
+ outputBits -= bits;
+ bits = 0;
} else {
- i = outputBits;
- bits -= outputBits;
- if ((a0 & 1) == 0) {
- ret |= (0xff >> (8 - i)) << bits;
+ buf <<= outputBits;
+ if (!(a0i & 1)) {
+ buf |= 0xff >> (8 - outputBits);
}
+ bits -= outputBits;
outputBits = 0;
- ++a0;
- if (codingLine[a0] < columns) {
- outputBits = codingLine[a0 + 1] - codingLine[a0];
+ if (codingLine[a0i] < columns) {
+ ++a0i;
+ outputBits = codingLine[a0i] - codingLine[a0i - 1];
+ } else if (bits > 0) {
+ buf <<= bits;
+ bits = 0;
}
}
- } while (bits > 0 && codingLine[a0] < columns);
+ } while (bits);
+ }
+ if (black) {
+ buf ^= 0xff;
}
- buf = black ? (ret ^ 0xff) : ret;
return buf;
}
@@ -1661,6 +1690,9 @@ short CCITTFaxStream::getWhiteCode() {
code = 0; // make gcc happy
if (endOfBlock) {
code = lookBits(12);
+ if (code == EOF) {
+ return 1;
+ }
if ((code >> 5) == 0) {
p = &whiteTab1[code];
} else {
@@ -1673,6 +1705,9 @@ short CCITTFaxStream::getWhiteCode() {
} else {
for (n = 1; n <= 9; ++n) {
code = lookBits(n);
+ if (code == EOF) {
+ return 1;
+ }
if (n < 9) {
code <<= 9 - n;
}
@@ -1684,6 +1719,9 @@ short CCITTFaxStream::getWhiteCode() {
}
for (n = 11; n <= 12; ++n) {
code = lookBits(n);
+ if (code == EOF) {
+ return 1;
+ }
if (n < 12) {
code <<= 12 - n;
}
@@ -1709,9 +1747,12 @@ short CCITTFaxStream::getBlackCode() {
code = 0; // make gcc happy
if (endOfBlock) {
code = lookBits(13);
+ if (code == EOF) {
+ return 1;
+ }
if ((code >> 7) == 0) {
p = &blackTab1[code];
- } else if ((code >> 9) == 0) {
+ } else if ((code >> 9) == 0 && (code >> 7) != 0) {
p = &blackTab2[(code >> 1) - 64];
} else {
p = &blackTab3[code >> 7];
@@ -1723,6 +1764,9 @@ short CCITTFaxStream::getBlackCode() {
} else {
for (n = 2; n <= 6; ++n) {
code = lookBits(n);
+ if (code == EOF) {
+ return 1;
+ }
if (n < 6) {
code <<= 6 - n;
}
@@ -1734,6 +1778,9 @@ short CCITTFaxStream::getBlackCode() {
}
for (n = 7; n <= 12; ++n) {
code = lookBits(n);
+ if (code == EOF) {
+ return 1;
+ }
if (n < 12) {
code <<= 12 - n;
}
@@ -1747,6 +1794,9 @@ short CCITTFaxStream::getBlackCode() {
}
for (n = 10; n <= 13; ++n) {
code = lookBits(n);
+ if (code == EOF) {
+ return 1;
+ }
if (n < 13) {
code <<= 13 - n;
}
@@ -1961,6 +2011,12 @@ void DCTStream::reset() {
// allocate a buffer for the whole image
bufWidth = ((width + mcuWidth - 1) / mcuWidth) * mcuWidth;
bufHeight = ((height + mcuHeight - 1) / mcuHeight) * mcuHeight;
+ if (bufWidth <= 0 || bufHeight <= 0 ||
+ bufWidth > INT_MAX / bufWidth / (int)sizeof(int)) {
+ error(getPos(), "Invalid image size in DCT stream");
+ y = height;
+ return;
+ }
for (i = 0; i < numComps; ++i) {
frameBuf[i] = (int *)gmallocn(bufWidth * bufHeight, sizeof(int));
memset(frameBuf[i], 0, bufWidth * bufHeight * sizeof(int));
@@ -3036,6 +3092,11 @@ GBool DCTStream::readScanInfo() {
}
scanInfo.firstCoeff = str->getChar();
scanInfo.lastCoeff = str->getChar();
+ if (scanInfo.firstCoeff < 0 || scanInfo.lastCoeff > 63 ||
+ scanInfo.firstCoeff > scanInfo.lastCoeff) {
+ error(getPos(), "Bad DCT coefficient numbers in scan info block");
+ return gFalse;
+ }
c = str->getChar();
scanInfo.ah = (c >> 4) & 0x0f;
scanInfo.al = c & 0x0f;
diff --git a/Build/source/libs/xpdf/xpdf/Stream.h b/Build/source/libs/xpdf/xpdf/Stream.h
index 85a84691bd9..29c9dbbb313 100644
--- a/Build/source/libs/xpdf/xpdf/Stream.h
+++ b/Build/source/libs/xpdf/xpdf/Stream.h
@@ -34,6 +34,7 @@ enum StreamKind {
strFlate,
strJBIG2,
strJPX,
+ strCrypt,
strWeird // internal-use stream types
};
@@ -528,13 +529,15 @@ private:
int row; // current row
int inputBuf; // input buffer
int inputBits; // number of bits in input buffer
- short *refLine; // reference line changing elements
- int b1; // index into refLine
- short *codingLine; // coding line changing elements
- int a0; // index into codingLine
+ int *codingLine; // coding line changing elements
+ int *refLine; // reference line changing elements
+ int a0i; // index into codingLine
+ GBool err; // error on current line
int outputBits; // remaining ouput bits
int buf; // character buffer
+ void addPixels(int a1, int black);
+ void addPixelsNeg(int a1, int black);
short getTwoDimCode();
short getWhiteCode();
short getBlackCode();
diff --git a/Build/source/libs/xpdf/xpdf/config.h b/Build/source/libs/xpdf/xpdf/config.h
index 2ebb01da228..e4e2b91c7a7 100644
--- a/Build/source/libs/xpdf/xpdf/config.h
+++ b/Build/source/libs/xpdf/xpdf/config.h
@@ -14,7 +14,7 @@
//------------------------------------------------------------------------
// xpdf version
-#define xpdfVersion "3.02pl1"
+#define xpdfVersion "3.02pl2"
#define xpdfVersionNum 3.02
#define xpdfMajorVersion 3
#define xpdfMinorVersion 2