debian/0000775000000000000000000000000013225723227007175 5ustar debian/rules0000775000000000000000000000434712316303047010257 0ustar #!/usr/bin/make -f export AUTOPOINT = true include /usr/share/cdbs/1/rules/autoreconf.mk include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/rules/utils.mk include /usr/share/cdbs/1/class/gnome.mk include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk DEB_MAKE_CHECK_TARGET = check DEB_CONFIGURE_EXTRA_FLAGS := --with-libjasper \ --with-x11 \ --enable-introspection \ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) DEB_DH_MAKESHLIBS_ARGS_libgdk-pixbuf2.0-0 += --add-udeb=libgdk-pixbuf2.0-0-udeb -X "/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0" -V -- -c4 common-binary-fixup-arch:: mkdir -p debian/libgdk-pixbuf2.0-0-udeb/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0/2.10.0 LD_LIBRARY_PATH=debian/libgdk-pixbuf2.0-0-udeb/usr/lib:$(LD_LIBRARY_PATH) \ debian/libgdk-pixbuf2.0-0/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ debian/libgdk-pixbuf2.0-0-udeb/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0/2.10.0/loaders/*.so \ | sed 's;$(CURDIR)/debian/libgdk-pixbuf2.0-0-udeb;;g' \ > debian/libgdk-pixbuf2.0-0-udeb/usr/lib/$(DEB_HOST_MULTIARCH)/gdk-pixbuf-2.0/2.10.0/loaders.cache binary-install/libgdk-pixbuf2.0-0:: set -e; for script in postinst postrm; do \ sed -e"s/#MULTIARCH#/$(DEB_HOST_MULTIARCH)/g" \ debian/$(cdbs_curpkg).$$script.in \ > debian/$(cdbs_curpkg).$$script ; \ done common-install-arch:: set -e; for file in libgdk-pixbuf2.0-0.install libgdk-pixbuf2.0-dev.links \ libgdk-pixbuf2.0-0.triggers; \ do \ sed -e"s,\$${DEB_HOST_MULTIARCH},${DEB_HOST_MULTIARCH},g" \ debian/$${file}.in > debian/$$file; \ done # temporary directory for the minimal MIME cache generation mimedir = debian/build-mime mimexml = /usr/share/mime/packages/freedesktop.org.xml clean:: rm -rf $(mimedir) binary-install/libgdk-pixbuf2.0-0-udeb:: # generate a minimal MIME cache for the udeb mkdir -p $(mimedir)/packages [ -f $(mimexml) ] xsltproc -nonet debian/keep-png-only.xsl $(mimexml) \ > $(mimedir)/packages/png.freedesktop.org.xml update-mime-database $(mimedir) dh_install -plibgdk-pixbuf2.0-0-udeb $(mimedir)/mime.cache usr/share/mime debian/source/0000775000000000000000000000000013225721464010476 5ustar debian/source/format0000664000000000000000000000001412316303047011675 0ustar 3.0 (quilt) debian/watch0000664000000000000000000000014612316303047010221 0ustar version=3 http://download.gnome.org/sources/gdk-pixbuf/([\d\.]+[02468])/ \ gdk-pixbuf\-(.*)\.tar\.xz debian/control.in0000664000000000000000000001135312316304410011175 0ustar Source: gdk-pixbuf Section: libs Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian GNOME Maintainers Uploaders: @GNOME_TEAM@ Build-Depends: cdbs (>= 0.4.93), debhelper (>= 9), dh-autoreconf, gtk-doc-tools (>= 1.20), gnome-pkg-tools (>= 0.10), libglib2.0-dev (>= 2.37.6), libx11-dev, libpng-dev | libpng12-dev, libjpeg-dev, libjasper-dev, libtiff-dev, gobject-introspection (>= 0.9.12-4~), libgirepository1.0-dev (>= 0.9.3), xsltproc, shared-mime-info (>= 1.2), Standards-Version: 3.9.5 Homepage: http://www.gtk.org/ Vcs-Svn: svn://anonscm.debian.org/pkg-gnome/desktop/unstable/gdk-pixbuf/ Vcs-Browser: http://svn.debian.org/viewpkg-gnome/desktop/unstable/gdk-pixbuf/ XS-Testsuite: autopkgtest Package: libgdk-pixbuf2.0-0 Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libgdk-pixbuf2.0-common (= ${source:Version}) Breaks: libgtk2.0-0 (<< 2.21.3), libgtk2.0-bin (<< 2.21.3), libwmf0.2-7 (<< 0.2.8.4-7), librsvg2-2 (<< 2.26.3-2) Replaces: libgtk2.0-0 (<< 2.21.3), libgtk2.0-bin (<< 2.21.3) Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same Description: GDK Pixbuf library The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) Package: libgdk-pixbuf2.0-0-dbg Section: debug Priority: extra Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, libgdk-pixbuf2.0-0 (= ${binary:Version}) Description: GDK Pixbuf library - debug symbols The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . This package contains debugging symbols used to debug applications that use this library. Package: libgdk-pixbuf2.0-common Architecture: all Depends: ${misc:Depends} Breaks: libgdk-pixbuf2.0-0 (<< 2.24.0-2) Replaces: libgdk-pixbuf2.0-0 (<< 2.24.0-2) Multi-Arch: foreign Description: GDK Pixbuf library - data files This package contains the common files and translations for the GDK Pixbuf library. Package: libgdk-pixbuf2.0-dev Section: libdevel Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libgdk-pixbuf2.0-0 (= ${binary:Version}), gir1.2-gdkpixbuf-2.0 (= ${binary:Version}), libglib2.0-dev (>= 2.37.6), libx11-dev, libpng12-dev Breaks: libgtk2.0-dev (<< 2.21.3), libgtk2.0-bin (<< 2.21.3) Replaces: libgtk2.0-dev (<< 2.21.3), libgtk2.0-bin (<< 2.21.3), gir-repository-dev Description: GDK Pixbuf library (development files) The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . This package contains the header files which are needed for using GDK Pixbuf. Package: libgdk-pixbuf2.0-doc Section: doc Architecture: all Depends: ${misc:Depends} Breaks: libgtk2.0-doc (<< 2.21.3) Replaces: libgtk2.0-doc (<< 2.21.3) Description: GDK Pixbuf library (documentation) The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . This package contains the HTML documentation for the GDK Pixbuf library in /usr/share/doc/libgtk2.0-doc/ . Package: libgdk-pixbuf2.0-0-udeb Package-Type: udeb Section: debian-installer Priority: extra Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: GDK Pixbuf library - minimal runtime This is a udeb, or a microdeb, for the debian-installer. . The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . This package contains the minimal runtime library needed by the Debian installer. Package: gir1.2-gdkpixbuf-2.0 Section: introspection Architecture: any Depends: ${gir:Depends}, ${misc:Depends}, ${shlibs:Depends} Replaces: gir1.0-gtk-2.0 (<< 2.21.3), gir1.2-gtk-2.0 (<< 2.21.3) Conflicts: gir1.0-gdkpixbuf-2.0 Description: GDK Pixbuf library - GObject-Introspection The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . It can be used by packages using the GIRepository format to generate dynamic bindings. debian/libgdk-pixbuf2.0-common.install0000664000000000000000000000002112316303047015005 0ustar usr/share/locale debian/control0000664000000000000000000001177313226121313010576 0ustar # This file is autogenerated. DO NOT EDIT! # # Modifications should be made to debian/control.in instead. # This file is regenerated automatically in the clean target. Source: gdk-pixbuf Section: libs Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian GNOME Maintainers Uploaders: Debian GNOME Maintainers , Emilio Pozuelo Monfort Build-Depends: cdbs (>= 0.4.93), debhelper (>= 9), dh-autoreconf, gtk-doc-tools (>= 1.20), gnome-pkg-tools (>= 0.10), libglib2.0-dev (>= 2.37.6), libx11-dev, libpng-dev | libpng12-dev, libjpeg-dev, libjasper-dev, libtiff-dev, gobject-introspection (>= 0.9.12-4~), libgirepository1.0-dev (>= 0.9.3), xsltproc, shared-mime-info (>= 1.2), Standards-Version: 3.9.5 Homepage: http://www.gtk.org/ Vcs-Svn: svn://anonscm.debian.org/pkg-gnome/desktop/unstable/gdk-pixbuf/ Vcs-Browser: http://svn.debian.org/viewpkg-gnome/desktop/unstable/gdk-pixbuf/ XS-Testsuite: autopkgtest Package: libgdk-pixbuf2.0-0 Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libgdk-pixbuf2.0-common (= ${source:Version}) Breaks: libgtk2.0-0 (<< 2.21.3), libgtk2.0-bin (<< 2.21.3), libwmf0.2-7 (<< 0.2.8.4-7), librsvg2-2 (<< 2.26.3-2) Replaces: libgtk2.0-0 (<< 2.21.3), libgtk2.0-bin (<< 2.21.3) Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same Description: GDK Pixbuf library The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) Package: libgdk-pixbuf2.0-0-dbg Section: debug Priority: extra Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, libgdk-pixbuf2.0-0 (= ${binary:Version}) Description: GDK Pixbuf library - debug symbols The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . This package contains debugging symbols used to debug applications that use this library. Package: libgdk-pixbuf2.0-common Architecture: all Depends: ${misc:Depends} Breaks: libgdk-pixbuf2.0-0 (<< 2.24.0-2) Replaces: libgdk-pixbuf2.0-0 (<< 2.24.0-2) Multi-Arch: foreign Description: GDK Pixbuf library - data files This package contains the common files and translations for the GDK Pixbuf library. Package: libgdk-pixbuf2.0-dev Section: libdevel Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libgdk-pixbuf2.0-0 (= ${binary:Version}), gir1.2-gdkpixbuf-2.0 (= ${binary:Version}), libglib2.0-dev (>= 2.37.6), libx11-dev, libpng12-dev Breaks: libgtk2.0-dev (<< 2.21.3), libgtk2.0-bin (<< 2.21.3) Replaces: libgtk2.0-dev (<< 2.21.3), libgtk2.0-bin (<< 2.21.3), gir-repository-dev Description: GDK Pixbuf library (development files) The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . This package contains the header files which are needed for using GDK Pixbuf. Package: libgdk-pixbuf2.0-doc Section: doc Architecture: all Depends: ${misc:Depends} Breaks: libgtk2.0-doc (<< 2.21.3) Replaces: libgtk2.0-doc (<< 2.21.3) Description: GDK Pixbuf library (documentation) The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . This package contains the HTML documentation for the GDK Pixbuf library in /usr/share/doc/libgtk2.0-doc/ . Package: libgdk-pixbuf2.0-0-udeb Package-Type: udeb Section: debian-installer Priority: extra Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: GDK Pixbuf library - minimal runtime This is a udeb, or a microdeb, for the debian-installer. . The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . This package contains the minimal runtime library needed by the Debian installer. Package: gir1.2-gdkpixbuf-2.0 Section: introspection Architecture: any Depends: ${gir:Depends}, ${misc:Depends}, ${shlibs:Depends} Replaces: gir1.0-gtk-2.0 (<< 2.21.3), gir1.2-gtk-2.0 (<< 2.21.3) Conflicts: gir1.0-gdkpixbuf-2.0 Description: GDK Pixbuf library - GObject-Introspection The GDK Pixbuf library provides: - Image loading and saving facilities. - Fast scaling and compositing of pixbufs. - Simple animation loading (ie. animated GIFs) . It can be used by packages using the GIRepository format to generate dynamic bindings. debian/libgdk-pixbuf2.0-0.triggers.in0000664000000000000000000000016612316303047014453 0ustar interest /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders interest /usr/lib/${DEB_HOST_MULTIARCH}/gdk-pixbuf-2.0/2.10.0/loaders debian/copyright0000664000000000000000000002011312316303047011117 0ustar This work was packaged for Debian by: Robert Ancell on Tue, 13 Jul 2010 15:04:22 +1000 It was downloaded from http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/ Upstream Authors: Original Authors ---------------- Peter Mattis Spencer Kimball Josh MacDonald The GTK+ Team (in alphabetical order) ------------------------------------- Shawn T. Amundson Jerome Bolliet Damon Chaplin Tony Gale Jeff Garzik Lars Hamann Raja R Harinath Carsten Haitzler Tim Janik Stefan Jeske Elliot Lee Raph Levien Ian Main Federico Mena Paolo Molaro Jay Painter Manish Singh Owen Taylor Copyright: For everything not listed below: Copyright (C) 2000 Red Hat, Inc. Copyright (C) 1999,2003 The Free Software Foundation For gdk-pixbuf/gdk-pixbuf-csource.c, gdk-pixbuf/gdk-pixdata.[ch]: Copyright (C) 1999, 2001 Tim Janik For gdk-pixbuf/gdk-pixbuf-i18n.h: Copyright (C) 2000 Havoc Pennington For gdk-pixbuf/gdk-pixbuf-simple-anim.[ch]: Copyright (C) 2004 Dom Lachowicz For gdk-pixbuf/io-gdip*.[ch]: Copyright (C) 2008 Dominic Lachowicz Copyright (C) 2008 Alberto Ruiz Copyright (C) 2007 Google (Evan Stade) For gdk-pixbuf/io-gif.c, gdk-pixbuf/io-png.c, gdk-pixbuf/io-tiff.c, gdk-pixbuf/io-xpm.c: Copyright (C) 1999 The Free Software Foundation Copyright (C) 1999 Mark Crichton For gdk-pixbuf/io-icns.c: Copyright (C) 2007 Lyonel Vincent Copyright (C) 2007 Bastien Nocera For gdk-pixbuf/io-jasper.c: Copyright (C) 2007 Bastien Nocera For gdk-pixbuf/io-jpeg.c: Copyright (C) 1999 Michael Zucchi Copyright (C) 1999 The Free Software Foundation Copyright (C) 1999 Red Hat, Inc For gdk-pixbuf/io-pcx.c: Copyright (C) 2003 Josh. A. Beam For gdk-pixbuf/io-qtif.c: Copyright (C) 2008 Kevin Peng For gdk-pixbuf/io-tga.c: Copyright (C) 1999 Nicola Girardi For gdk-pixbuf/io-xbm.c: Copyright (C) 1999 The Free Software Foundation Copyright (C) 1999 Mark Crichton Copyright (C) 2001 Eazel, Inc For gdk-pixbuf/pixops/pixops.c: Copyright (C) 2000 Red Hat, Inc. Copyright (C) 2001-2007 Sun Microsystems, Inc For contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib.[ch], contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-private.h: Copyright (C) John Harper For contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-drawable.c: Copyright (C) 1999 Michael Zucchi For contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-render.c: Copyright (C) 1999 The Free Software Foundation For contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlibrgb.[ch]: Copyright (C) Raph Levien Copyright (C) Manish Singh Copyright (C) Tim Janik Copyright (C) Peter Mattis Copyright (C) Spencer Kimball Copyright (C) Josh MacDonald Copyright (C) Christopher Blizzard Copyright (C) Owen Taylor Copyright (C) Shawn T. Amundson For tests/pixbuf-read.c, tests/pixbuf-randomly-modified.c, tests/pixbuf-random.c, tests/pixbuf-lowmem.c: Copyright (C) 2001 Søren Sandmann (sandmann@daimi.au.dk) For tests/pixbuf-threads.c: Copyright (C) 2004 Matthias Clasen License: For everything not listed below: This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. On Debian systems, the complete text of the GNU Lesser General Public License can be found in `/usr/share/common-licenses/LGPL-2'. For contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlibrgb.[ch]: The contents of this file are subject to the Mozilla Public License Version 1.1 (the "MPL"); you may not use this file except in compliance with the MPL. You may obtain a copy of the MPL at http://www.mozilla.org/MPL/ Software distributed under the MPL is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the MPL for the specific language governing rights and limitations under the MPL. Alternatively, the contents of this file may be used under the terms of the GNU Library General Public License (the "LGPL"), in which case the provisions of the LGPL are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the LGPL and not to allow others to use your version of this file under the MPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the LGPL. If you do not delete the provisions above, a recipient may use your version of this file under either the MPL or the LGPL. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA On Debian systems, the complete text of the GNU Lesser General Public License can be found in `/usr/share/common-licenses/LGPL-2'. For tests/* (not shipped in binary packages), gdk-pixbuf/test-gdk-pixbuf.c (not shipped in binary packages): This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. The Debian packaging is: Copyright (C) 2010 Robert Ancell and is licensed under the LGPL version 2 of the licence, or (at your option) any later version., see `/usr/share/common-licenses/LGPL-2'. debian/libgdk-pixbuf2.0-doc.install0000664000000000000000000000004312316303047014266 0ustar usr/share/gtk-doc/html/gdk-pixbuf/ debian/tests/0000775000000000000000000000000012316303047010331 5ustar debian/tests/control0000664000000000000000000000011012316303047011724 0ustar Tests: build Depends: libgdk-pixbuf2.0-dev, build-essential, pkg-config debian/tests/build0000664000000000000000000000127412316303047011357 0ustar #!/bin/sh # autopkgtest check: Builds a small application against libgdk-pixbuf2.0, checking # if it compiles, links and runs successfully. # Author: Rafał Cieślak set -e WORKDIR=$(mktemp -d) trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM cd $WORKDIR cat < build_test.c #include int main(){ GdkPixbuf *pixbuf = NULL; #if !defined(GLIB_VERSION_2_36) g_type_init(); #endif pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 50, 180); if(!pixbuf) return 1; return 0; } EOF gcc -o build_test build_test.c -Wall -Werror `pkg-config --cflags --libs gdk-pixbuf-2.0` echo "build: OK" [ -x build_test ] ./build_test echo "run: OK" debian/libgdk-pixbuf2.0-0.postrm.in0000664000000000000000000000041312316303047014144 0ustar #! /bin/sh set -e #DEBHELPER# if [ -d /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0 ]; then # Purge the cache rm -f /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders.cache rmdir -p --ignore-fail-on-non-empty /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0 fi debian/libgdk-pixbuf2.0-0.install.in0000664000000000000000000000026512316303047014273 0ustar usr/bin/gdk-pixbuf-query-loaders /usr/lib/${DEB_HOST_MULTIARCH}/gdk-pixbuf-2.0 usr/lib/${DEB_HOST_MULTIARCH}/*.so.* usr/lib/${DEB_HOST_MULTIARCH}/gdk-pixbuf-2.0/2.10.0/loaders/*.so debian/libgdk-pixbuf2.0-dev.install0000664000000000000000000000021212316303047014275 0ustar usr/bin/gdk-pixbuf-csource usr/bin/gdk-pixbuf-pixdata usr/include usr/lib/*/*.so usr/lib/*/pkgconfig usr/share/gir-1.0 usr/share/man/man1 debian/compat0000664000000000000000000000000212316303047010365 0ustar 9 debian/libgdk-pixbuf2.0-dev.manpages0000664000000000000000000000003312316303047014423 0ustar debian/gdk-pixbuf-pixdata.1debian/gir1.2-gdkpixbuf-2.0.install0000664000000000000000000000006612316303047014041 0ustar usr/lib/*/girepository-1.0/* usr/lib/girepository-1.0 debian/gdk-pixbuf-pixdata.10000664000000000000000000000130612316303047012741 0ustar .TH GDK-PIXBUF-PIXDATA "1" "November 2013" "gdk-pixbuf-pixdata" "User Commands" .SH NAME gdk-pixbuf-pixdata \- GDK Pixbuf library .SH SYNOPSIS .B gdk-pixbuf-pixdata [\fIoptions\fR] [\fIinput-file\fR] [\fIoutput-file\fR] .SH DESCRIPTION .TP \fB\-h\fR, \fB\-\-help\fR show this help message .TP \fB\-v\fR, \fB\-\-version\fR print version information .TP \fB\-\-g\-fatal\-warnings\fR make warnings fatal (abort) .PP gdk\-pixbuf\-pixdata comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of gdk\-pixbuf\-pixdata under the terms of the GNU Lesser General Public License which can be found in the gdk\-pixbuf source package. Sources, examples and contact information are available at http://www.gtk.org debian/patches/0000775000000000000000000000000013226121204010610 5ustar debian/patches/CVE-2017-2870.patch0000664000000000000000000000445013154004733013245 0ustar From 31a6cff3dfc6944aad4612a9668b8ad39122e48b Mon Sep 17 00:00:00 2001 From: Ludovico de Nittis Date: Sun, 19 Mar 2017 16:11:13 +0100 Subject: tiff: Check for integer overflows in multiplication The checks currently in use are not sufficient, because they depend on undefined behaviour: rowstride = width * 4; if (rowstride / 4 != width) { /* overflow */ If the multiplication has already overflowed, the compiler may decide to optimize the if out and thus we do not handle the erroneous case. Rearrange the checks to avoid the undefined behaviour. Note that gcc doesn't seem to be impacted, though a defined behaviour is obviously preferred. CVE-2017-2870 https://bugzilla.gnome.org/show_bug.cgi?id=780269 --- gdk-pixbuf/io-tiff.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) Index: gdk-pixbuf-2.30.7/gdk-pixbuf/io-tiff.c =================================================================== --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/io-tiff.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/io-tiff.c @@ -118,18 +118,18 @@ tiff_image_parse (TIFF *tiff, TiffContex _("Width or height of TIFF image is zero")); return NULL; } - - rowstride = width * 4; - if (rowstride / 4 != width) { /* overflow */ + + if (width > G_MAXINT / 4) { /* overflow */ g_set_error_literal (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, _("Dimensions of TIFF image too large")); return NULL; } - - bytes = height * rowstride; - if (bytes / rowstride != height) { /* overflow */ + + rowstride = width * 4; + + if (height > G_MAXINT / rowstride) { /* overflow */ g_set_error_literal (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, @@ -137,6 +137,8 @@ tiff_image_parse (TIFF *tiff, TiffContex return NULL; } + bytes = height * rowstride; + if (context && context->size_func) { gint w = width; gint h = height; debian/patches/series0000664000000000000000000000055513226121204012032 0ustar CVE-2015-4491-1.patch CVE-2015-4491-2.patch CVE-2015-7673-1.patch CVE-2015-7673-2.patch CVE-2015-7673-3.patch CVE-2015-7674.patch CVE-2015-7552.patch CVE-2015-8875.patch CVE-2016-6352.patch CVE-2017-2870.patch CVE-2017-2862-part1.patch CVE-2017-2862-part2.patch CVE-2017-6311.patch CVE-2017-6312.patch CVE-2017-6313.patch CVE-2017-6314.patch CVE-2017-1000422.patch debian/patches/CVE-2015-7552.patch0000664000000000000000000001446612770500656013265 0ustar Description: Fix a heap based buffer overflow (CVE-2015-7552) Origin: upstream, multiple Bug: https://bugzilla.gnome.org/show_bug.cgi?id=747605 Upstream commits: https://git.gnome.org/browse/gdk-pixbuf/commit/?id=7b10db13ff370bf2500688054249101ff175a942 https://git.gnome.org/browse/gdk-pixbuf/commit/?id=ca74893a8e06e99b4adc682ee1550bfd020687c7 https://git.gnome.org/browse/gdk-pixbuf/commit/?id=b7bf6fbfb310fceba2d35d4de143b8d5ffdad990 https://git.gnome.org/browse/gdk-pixbuf/commit/?id=4f68cb78a5277f169b9531e6998c00c7976594e4 Forwarded: not-needed Last-Update: 2016-09-20 --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/gdk-pixbuf-scale.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/gdk-pixbuf-scale.c @@ -373,7 +373,7 @@ gdk_pixbuf_composite_color_simple (const return dest; } -#define OFFSET(pb, x, y) ((x) * (pb)->n_channels + (y) * (pb)->rowstride) +#define OFFSET(pb, x, y) ((x) * (pb)->n_channels + (gsize)(y) * (pb)->rowstride) /** * gdk_pixbuf_rotate_simple: --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/io-bmp.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/io-bmp.c @@ -318,11 +318,31 @@ static gboolean DecodeHeader(unsigned ch return FALSE; } + if (State->Header.depth > 32) + { + g_set_error_literal (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("BMP image has unsupported depth")); + State->read_state = READ_STATE_ERROR; + return FALSE; + } + if (State->Header.size == 12) clrUsed = 1 << State->Header.depth; else clrUsed = (int) (BIH[35] << 24) + (BIH[34] << 16) + (BIH[33] << 8) + (BIH[32]); + if (clrUsed > (1 << State->Header.depth)) + { + g_set_error_literal (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("BMP image has oversize palette")); + State->read_state = READ_STATE_ERROR; + return FALSE; + } + if (clrUsed != 0) State->Header.n_colors = clrUsed; else --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/io-ico.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/io-ico.c @@ -586,11 +586,11 @@ OneLine32 (struct ico_progressive_state X = 0; if (context->Header.Negative == 0) Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * (context->Header.height - context->Lines - 1)); else Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * context->Lines); while (X < context->Header.width) { Pixels[X * 4 + 0] = context->LineBuf[X * 4 + 2]; @@ -609,11 +609,11 @@ static void OneLine24(struct ico_progres X = 0; if (context->Header.Negative == 0) Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * (context->Header.height - context->Lines - 1)); else Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * context->Lines); while (X < context->Header.width) { Pixels[X * 4 + 0] = context->LineBuf[X * 3 + 2]; @@ -633,10 +633,12 @@ OneLine16 (struct ico_progressive_state if (context->Header.Negative == 0) pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * (context->Header.height - context->Lines - 1)); + (gsize) context->pixbuf->rowstride * + (context->Header.height - context->Lines - 1)); else pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * context->Lines); + (gsize) context->pixbuf->rowstride * + context->Lines); src = context->LineBuf; @@ -670,11 +672,11 @@ static void OneLine8(struct ico_progress X = 0; if (context->Header.Negative == 0) Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * (context->Header.height - context->Lines - 1)); else Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * context->Lines); while (X < context->Header.width) { /* The joys of having a BGR byteorder */ @@ -695,11 +697,11 @@ static void OneLine4(struct ico_progress X = 0; if (context->Header.Negative == 0) Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * (context->Header.height - context->Lines - 1)); else Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * context->Lines); while (X < context->Header.width) { @@ -736,11 +738,11 @@ static void OneLine1(struct ico_progress X = 0; if (context->Header.Negative == 0) Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * (context->Header.height - context->Lines - 1)); else Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * context->Lines); while (X < context->Header.width) { int Bit; @@ -767,11 +769,11 @@ static void OneLineTransp(struct ico_pro X = 0; if (context->Header.Negative == 0) Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * (2*context->Header.height - context->Lines - 1)); else Pixels = (context->pixbuf->pixels + - context->pixbuf->rowstride * + (gsize) context->pixbuf->rowstride * (context->Lines-context->Header.height)); while (X < context->Header.width) { int Bit; @@ -1047,7 +1049,7 @@ fill_entry (IconEntry *icon, pixels = gdk_pixbuf_get_pixels (pixbuf); n_channels = gdk_pixbuf_get_n_channels (pixbuf); for (y = 0; y < icon->height; y++) { - p = pixels + gdk_pixbuf_get_rowstride (pixbuf) * (icon->height - 1 - y); + p = pixels + (gsize) gdk_pixbuf_get_rowstride (pixbuf) * (icon->height - 1 - y); and = icon->and + icon->and_rowstride * y; xor = icon->xor + icon->xor_rowstride * y; for (x = 0; x < icon->width; x++) { debian/patches/CVE-2017-1000422.patch0000664000000000000000000000676713225753141013475 0ustar Backported of: From 0012e066ba37439d402ce46afbc1311530a4ec61 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Wed, 23 Aug 2017 18:02:41 +0200 Subject: io-gif: Fail quickly when image dimensions are too big Fail quickly when the dimensions would create an image that's bigger than MAXINT bytes long. See https://bugzilla.gnome.org/show_bug.cgi?id=765094 https://bugzilla.gnome.org/show_bug.cgi?id=785973 diff --git a/gdk-pixbuf/io-gif.c b/gdk-pixbuf/io-gif.c index 5b58b4d..eb86375 100644 --- a/gdk-pixbuf/io-gif.c +++ b/gdk-pixbuf/io-gif.c @@ -816,6 +816,35 @@ maybe_update (GifContext *context, context->user_data); } +/* Available in glib since 2.48 */ +static inline gboolean _g_uint64_checked_mul (guint64 *dest, guint64 a, guint64 b) { + *dest = a * b; return !a || *dest / a == b; } + +/* Available in gdk-pixbuf 2.36.8 */ +static gint +_gdk_pixbuf_calculate_rowstride (GdkColorspace colorspace, + gboolean has_alpha, + int bits_per_sample, + int width, + int height) +{ + unsigned int channels; + + g_return_val_if_fail (colorspace == GDK_COLORSPACE_RGB, -1); + g_return_val_if_fail (bits_per_sample == 8, -1); + g_return_val_if_fail (width > 0, -1); + g_return_val_if_fail (height > 0, -1); + + channels = has_alpha ? 4 : 3; + + /* Overflow? */ + if (width > (G_MAXINT - 3) / channels) + return -1; + + /* Always align rows to 32-bit boundaries */ + return (width * channels + 3) & ~3; +} + static int gif_get_lzw (GifContext *context) { @@ -849,13 +878,28 @@ gif_get_lzw (GifContext *context) pixels[2] = 0; pixels[3] = 0; } - } else - context->frame->pixbuf = - gdk_pixbuf_new (GDK_COLORSPACE_RGB, - TRUE, - 8, - context->frame_len, - context->frame_height); + } else { + int rowstride; + guint64 len; + + rowstride = _gdk_pixbuf_calculate_rowstride (GDK_COLORSPACE_RGB, + TRUE, + 8, + context->frame_len, + context->frame_height); + if (rowstride > 0 && + _g_uint64_checked_mul (&len, rowstride, context->frame_height) && + len <= G_MAXINT) { + context->frame->pixbuf = + gdk_pixbuf_new (GDK_COLORSPACE_RGB, + TRUE, + 8, + context->frame_len, + context->frame_height); + } else { + context->frame->pixbuf = NULL; + } + } if (!context->frame->pixbuf) { g_free (context->frame); g_set_error_literal (context->error, debian/patches/CVE-2017-2862-part1.patch0000664000000000000000000000401513156377613014304 0ustar From c2a40a92fe3df4111ed9da51fe3368c079b86926 Mon Sep 17 00:00:00 2001 From: Tobias Mueller Date: Wed, 12 Jul 2017 20:36:11 +0200 Subject: jpeg: Throw error when number of color components is unsupported Explicitly check "3" or "4" output color components. gdk-pixbuf assumed that the value of output_components to be either 3 or 4, but not an invalid value (9) or an unsupported value (1). The way the buffer size was deduced was using a naive "== 4" check, with a 1, 3 or 9 color component picture getting the same buffer size, a size just sufficient for 3 color components, causing invalid writes later when libjpeg-turbo was decoding the image. CVE-2017-2862 Sent by from Marcin 'Icewall' Noga of Cisco Talos https://bugzilla.gnome.org/show_bug.cgi?id=784866 Index: gdk-pixbuf-2.30.7/gdk-pixbuf/io-jpeg.c =================================================================== --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/io-jpeg.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/io-jpeg.c @@ -986,6 +986,7 @@ gdk_pixbuf__jpeg_image_load_increment (g /* try to load jpeg header */ if (!context->got_header) { int rc; + gboolean has_alpha; jpeg_save_markers (cinfo, JPEG_APP0+1, 0xffff); jpeg_save_markers (cinfo, JPEG_APP0+2, 0xffff); @@ -1024,9 +1025,24 @@ gdk_pixbuf__jpeg_image_load_increment (g } jpeg_calc_output_dimensions (cinfo); - context->pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, - cinfo->output_components == 4 ? TRUE : FALSE, - 8, + + if (cinfo->output_components == 3) { + has_alpha = FALSE; + } else if (cinfo->output_components == 4) { + has_alpha = TRUE; + } else { + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Unsupported number of color components (%d)"), + cinfo->output_components); + retval = FALSE; + goto out; + } + + context->pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, + has_alpha, + 8, cinfo->output_width, cinfo->output_height); debian/patches/CVE-2017-6314.patch0000664000000000000000000000311413226121204013227 0ustar Backported of: From 1e513abdb55529f888233d3c96b27352d83aad5f Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Tue, 5 Dec 2017 10:26:49 +0100 Subject: [PATCH] tiff: Avoid overflowing buffer size computation Use g_uint_checked_mul() to avoid overflowing the guint used for buffer size calculation. https://bugzilla.gnome.org/show_bug.cgi?id=779020 diff --git a/gdk-pixbuf/io-tiff.c b/gdk-pixbuf/io-tiff.c index 9351996..046101a 100644 --- a/gdk-pixbuf/io-tiff.c +++ b/gdk-pixbuf/io-tiff.c @@ -451,6 +451,10 @@ gdk_pixbuf__tiff_image_stop_load (gpointer data, return retval; } +/* Available in glib since 2.48 */ +static inline gboolean _g_uint_checked_mul (guint32 *dest, guint32 a, guint32 b) { + *dest = a * b; return !a || *dest / a == b; } + static gboolean make_available_at_least (TiffContext *context, guint needed) { @@ -460,8 +464,15 @@ make_available_at_least (TiffContext *context, guint needed) need_alloc = context->used + needed; if (need_alloc > context->allocated) { guint new_size = 1; - while (new_size < need_alloc) - new_size *= 2; + while (new_size < need_alloc) { + if (!_g_uint_checked_mul (&new_size, new_size, 2)) { + new_size = 0; + break; + } + } + + if (new_size == 0) + return FALSE; new_buffer = g_try_realloc (context->buffer, new_size); if (new_buffer) { debian/patches/CVE-2015-4491-1.patch0000664000000000000000000000510312564662430013406 0ustar From ffec86ed5010c5a2be14f47b33bcf4ed3169a199 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 13 Jul 2015 00:33:40 -0400 Subject: pixops: Be more careful about integer overflow Our loader code is supposed to handle out-of-memory and overflow situations gracefully, reporting errors instead of aborting. But if you load an image at a specific size, we also execute our scaling code, which was not careful enough about overflow in some places. This commit makes the scaling code silently return if it fails to allocate filter tables. This is the best we can do, since gdk_pixbuf_scale() is not taking a GError. https://bugzilla.gnome.org/show_bug.cgi?id=752297 Index: gdk-pixbuf-2.30.7/gdk-pixbuf/pixops/pixops.c =================================================================== --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/pixops/pixops.c 2015-08-18 13:02:13.468083042 -0400 +++ gdk-pixbuf-2.30.7/gdk-pixbuf/pixops/pixops.c 2015-08-18 13:02:13.464083002 -0400 @@ -1192,7 +1192,16 @@ int i_offset, j_offset; int n_x = filter->x.n; int n_y = filter->y.n; - int *weights = g_new (int, SUBSAMPLE * SUBSAMPLE * n_x * n_y); + gsize n_weights; + int *weights; + + n_weights = SUBSAMPLE * SUBSAMPLE * n_x * n_y; + if (n_weights / (SUBSAMPLE * SUBSAMPLE * n_x) != n_y) + return NULL; /* overflow, bail */ + + weights = g_try_new (int, n_weights); + if (!weights) + return NULL; /* overflow, bail */ for (i_offset=0; i_offset < SUBSAMPLE; i_offset++) for (j_offset=0; j_offset < SUBSAMPLE; j_offset++) @@ -1267,8 +1276,11 @@ if (x_step == 0 || y_step == 0) return; /* overflow, bail out */ - line_bufs = g_new (guchar *, filter->y.n); filter_weights = make_filter_table (filter); + if (!filter_weights) + return; /* overflow, bail out */ + + line_bufs = g_new (guchar *, filter->y.n); check_shift = check_size ? get_check_shift (check_size) : 0; @@ -1388,7 +1400,7 @@ double scale) { int n = ceil (1 / scale + 1); - double *pixel_weights = g_new (double, SUBSAMPLE * n); + double *pixel_weights = g_malloc_n (sizeof (double) * SUBSAMPLE, n); int offset; int i; @@ -1446,7 +1458,7 @@ } dim->n = n; - dim->weights = g_new (double, SUBSAMPLE * n); + dim->weights = g_malloc_n (sizeof (double) * SUBSAMPLE, n); pixel_weights = dim->weights; @@ -1537,7 +1549,7 @@ double scale) { int n = ceil (1/scale + 3.0); - double *pixel_weights = g_new (double, SUBSAMPLE * n); + double *pixel_weights = g_malloc_n (sizeof (double) * SUBSAMPLE, n); double w; int offset, i; debian/patches/CVE-2015-7673-1.patch0000664000000000000000000001331412605565454013422 0ustar From 19f9685dbff7d1f929c61cf99188df917a18811d Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 19 Sep 2015 21:24:34 +0200 Subject: pixops: Fail make_weights functions on OOM The weights could grow very large under certain circumstances, in particular in security-relevant conditions, including the testsuite. By allowing the weight allocation to fail, this can be worked around. https://bugzilla.gnome.org/show_bug.cgi?id=754387 --- gdk-pixbuf/pixops/pixops.c | 75 +++++++++++++++++++++++++++++++++------------- 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/gdk-pixbuf/pixops/pixops.c b/gdk-pixbuf/pixops/pixops.c index e41b286..4cdb5df 100644 --- a/gdk-pixbuf/pixops/pixops.c +++ b/gdk-pixbuf/pixops/pixops.c @@ -1478,15 +1478,19 @@ pixops_process (guchar *dest_buf, /* Compute weights for reconstruction by replication followed by * sampling with a box filter */ -static void +static gboolean tile_make_weights (PixopsFilterDimension *dim, double scale) { int n = ceil (1 / scale + 1); - double *pixel_weights = g_malloc_n (sizeof (double) * SUBSAMPLE, n); + double *pixel_weights; int offset; int i; + pixel_weights = g_try_malloc_n (sizeof (double) * SUBSAMPLE, n); + if (pixel_weights == NULL) + return FALSE; + dim->n = n; dim->offset = 0; dim->weights = pixel_weights; @@ -1514,13 +1518,15 @@ tile_make_weights (PixopsFilterDimension *dim, } } } + + return TRUE; } /* Compute weights for a filter that, for minification * is the same as 'tiles', and for magnification, is bilinear * reconstruction followed by a sampling with a delta function. */ -static void +static gboolean bilinear_magnify_make_weights (PixopsFilterDimension *dim, double scale) { @@ -1541,7 +1547,9 @@ bilinear_magnify_make_weights (PixopsFilterDimension *dim, } dim->n = n; - dim->weights = g_malloc_n (sizeof (double) * SUBSAMPLE, n); + dim->weights = g_try_malloc_n (sizeof (double) * SUBSAMPLE, n); + if (dim->weights == NULL) + return FALSE; pixel_weights = dim->weights; @@ -1581,6 +1589,8 @@ bilinear_magnify_make_weights (PixopsFilterDimension *dim, } } } + + return TRUE; } /* Computes the integral from b0 to b1 of @@ -1627,15 +1637,19 @@ linear_box_half (double b0, double b1) /* Compute weights for reconstructing with bilinear * interpolation, then sampling with a box filter */ -static void +static gboolean bilinear_box_make_weights (PixopsFilterDimension *dim, double scale) { int n = ceil (1/scale + 3.0); - double *pixel_weights = g_malloc_n (sizeof (double) * SUBSAMPLE, n); + double *pixel_weights; double w; int offset, i; + pixel_weights = g_malloc_n (sizeof (double) * SUBSAMPLE, n); + if (pixel_weights == NULL) + return FALSE; + dim->offset = -1.0; dim->n = n; dim->weights = pixel_weights; @@ -1653,9 +1667,11 @@ bilinear_box_make_weights (PixopsFilterDimension *dim, *(pixel_weights++) = w * scale; } } + + return TRUE; } -static void +static gboolean make_weights (PixopsFilter *filter, PixopsInterpType interp_type, double scale_x, @@ -1664,23 +1680,39 @@ make_weights (PixopsFilter *filter, switch (interp_type) { case PIXOPS_INTERP_NEAREST: + default: g_assert_not_reached (); - break; + return FALSE; case PIXOPS_INTERP_TILES: - tile_make_weights (&filter->x, scale_x); - tile_make_weights (&filter->y, scale_y); - break; + if (!tile_make_weights (&filter->x, scale_x)) + return FALSE; + if (!tile_make_weights (&filter->y, scale_y)) + { + g_free (filter->x.weights); + return FALSE; + } + return TRUE; case PIXOPS_INTERP_BILINEAR: - bilinear_magnify_make_weights (&filter->x, scale_x); - bilinear_magnify_make_weights (&filter->y, scale_y); - break; + if (!bilinear_magnify_make_weights (&filter->x, scale_x)) + return FALSE; + if (!bilinear_magnify_make_weights (&filter->y, scale_y)) + { + g_free (filter->x.weights); + return FALSE; + } + return TRUE; case PIXOPS_INTERP_HYPER: - bilinear_box_make_weights (&filter->x, scale_x); - bilinear_box_make_weights (&filter->y, scale_y); - break; + if (!bilinear_box_make_weights (&filter->x, scale_x)) + return FALSE; + if (!bilinear_box_make_weights (&filter->y, scale_y)) + { + g_free (filter->x.weights); + return FALSE; + } + return TRUE; } } @@ -1735,7 +1767,8 @@ _pixops_composite_color_real (guchar *dest_buf, } filter.overall_alpha = overall_alpha / 255.; - make_weights (&filter, interp_type, scale_x, scale_y); + if (!make_weights (&filter, interp_type, scale_x, scale_y)) + return; #ifdef USE_MMX if (filter.x.n == 2 && filter.y.n == 2 && @@ -1890,7 +1923,8 @@ _pixops_composite_real (guchar *dest_buf, } filter.overall_alpha = overall_alpha / 255.; - make_weights (&filter, interp_type, scale_x, scale_y); + if (!make_weights (&filter, interp_type, scale_x, scale_y)) + return; if (filter.x.n == 2 && filter.y.n == 2 && dest_channels == 4 && src_channels == 4 && src_has_alpha && !dest_has_alpha) @@ -2297,7 +2331,8 @@ _pixops_scale_real (guchar *dest_buf, } filter.overall_alpha = 1.0; - make_weights (&filter, interp_type, scale_x, scale_y); + if (!make_weights (&filter, interp_type, scale_x, scale_y)) + return; if (filter.x.n == 2 && filter.y.n == 2 && dest_channels == 3 && src_channels == 3) { -- cgit v0.11.2 debian/patches/CVE-2015-8875.patch0000664000000000000000000000416112770476447013277 0ustar Description: Fix multiple integer overflows (CVE-2015-8875) Origin: upstream, https://git.gnome.org/browse/gdk-pixbuf/patch/?id=dbfe8f70471864818bf458a39c8a99640895bd22 Bug: https://bugzilla.gnome.org/show_bug.cgi?id=758991 Forwarded: not-needed Last-Update: 2016-09-20 --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/pixops/pixops.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/pixops/pixops.c @@ -354,11 +354,11 @@ pixops_composite_nearest (guchar double scale_y, int overall_alpha) { - int i; - int x; - int x_step = (1 << SCALE_SHIFT) / scale_x; - int y_step = (1 << SCALE_SHIFT) / scale_y; - int xmax, xstart, xstop, x_pos, y_pos; + gint64 i; + gint64 x; + gint64 x_step = (1 << SCALE_SHIFT) / scale_x; + gint64 y_step = (1 << SCALE_SHIFT) / scale_y; + gint64 xmax, xstart, xstop, x_pos, y_pos; const guchar *p; unsigned int a0; @@ -444,13 +444,13 @@ pixops_composite_color_nearest (guchar guint32 color1, guint32 color2) { - int i, j; - int x; - int x_step = (1 << SCALE_SHIFT) / scale_x; - int y_step = (1 << SCALE_SHIFT) / scale_y; + gint64 i, j; + gint64 x; + gint64 x_step = (1 << SCALE_SHIFT) / scale_x; + gint64 y_step = (1 << SCALE_SHIFT) / scale_y; int r1, g1, b1, r2, g2, b2; int check_shift = get_check_shift (check_size); - int xmax, xstart, xstop, x_pos, y_pos; + gint64 xmax, xstart, xstop, x_pos, y_pos; const guchar *p; unsigned int a0; @@ -1259,20 +1259,20 @@ pixops_process (guchar *dest_buf PixopsLineFunc line_func, PixopsPixelFunc pixel_func) { - int i, j; - int x, y; /* X and Y position in source (fixed_point) */ + gint64 i, j; + gint64 x, y; /* X and Y position in source (fixed_point) */ guchar **line_bufs; int *filter_weights; - int x_step; - int y_step; + gint64 x_step; + gint64 y_step; int check_shift; - int scaled_x_offset; + gint64 scaled_x_offset; - int run_end_x; - int run_end_index; + gint64 run_end_x; + gint64 run_end_index; x_step = (1 << SCALE_SHIFT) / scale_x; /* X step in source (fixed point) */ y_step = (1 << SCALE_SHIFT) / scale_y; /* Y step in source (fixed point) */ debian/patches/CVE-2017-2862-part2.patch0000664000000000000000000000213413156377642014307 0ustar From 6dd89e126a277460faafc1f679db44ccf78446fb Mon Sep 17 00:00:00 2001 From: "A. Bosch" Date: Thu, 20 Jul 2017 15:07:13 +0200 Subject: jpeg: Restore grayscale image support Commit c2a40a92fe3df4111ed9da51fe3368c079b86926 restricts the jpeg loader to files with 3 or 4 color components. Also allow JCS_GRAYSCALE images with only 1 color component. These grayscale images are supported through explode_gray_into_buf. https://bugzilla.gnome.org/show_bug.cgi?id=785171 --- gdk-pixbuf/io-jpeg.c | 3 +++ 1 file changed, 3 insertions(+) Index: gdk-pixbuf-2.30.7/gdk-pixbuf/io-jpeg.c =================================================================== --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/io-jpeg.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/io-jpeg.c @@ -1030,6 +1030,9 @@ gdk_pixbuf__jpeg_image_load_increment (g has_alpha = FALSE; } else if (cinfo->output_components == 4) { has_alpha = TRUE; + } else if (cinfo->output_components == 1 && + cinfo->out_color_space == JCS_GRAYSCALE) { + has_alpha = FALSE; } else { g_set_error (error, GDK_PIXBUF_ERROR, debian/patches/CVE-2017-6311.patch0000664000000000000000000000263413156377721013255 0ustar From 758655315bc3760c2d646e1e935f7448847073af Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Thu, 27 Jul 2017 13:27:47 +0100 Subject: ico: Return an error when the ICO didn't load If we don't even read enough data to fill the header, return an error. This doesn't cover everything that could go wrong with the ICO incremental loader, but this is a good first throw. https://bugzilla.gnome.org/show_bug.cgi?id=778204 --- gdk-pixbuf/io-ico.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) Index: gdk-pixbuf-2.30.7/gdk-pixbuf/io-ico.c =================================================================== --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/io-ico.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/io-ico.c @@ -584,6 +584,7 @@ gdk_pixbuf__ico_image_stop_load(gpointer { struct ico_progressive_state *context = (struct ico_progressive_state *) data; + gboolean ret = TRUE; /* FIXME this thing needs to report errors if * we have unused image data @@ -591,8 +592,16 @@ gdk_pixbuf__ico_image_stop_load(gpointer g_return_val_if_fail(context != NULL, TRUE); + if (context->HeaderDone < context->HeaderSize) { + g_set_error_literal (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("ICO image was truncated or incomplete.")); + ret = FALSE; + } + context_free (context); - return TRUE; + return ret; } static void debian/patches/CVE-2017-6312.patch0000664000000000000000000000276413225730561013252 0ustar Backported of: From dec9ca22d70c0f0d4492333b4e8147afb038afd2 Mon Sep 17 00:00:00 2001 From: Dhiru Kholia Date: Thu, 30 Nov 2017 02:36:26 +0100 Subject: ico: Fix potential integer overflow Which relies on undefined behaviour. Instead of checking for an overflowed integer after the fact, check whether the addition would be possible at all. Fixes: CVE-2017-6312 diff --git a/gdk-pixbuf/io-ico.c b/gdk-pixbuf/io-ico.c index 03bc17c..4b0be7e 100644 --- a/gdk-pixbuf/io-ico.c +++ b/gdk-pixbuf/io-ico.c @@ -25,6 +25,8 @@ #undef DUMPBIH #define DEBUG(s) +#define INFOHEADER_SIZE 40 + /* Icons are just like BMP's, except for the header. @@ -309,10 +311,8 @@ static void DecodeHeader(guchar *Data, gint Bytes, return; } - /* We know how many bytes are in the "header" part. */ - State->HeaderSize = entry->DIBoffset + 40; /* 40 = sizeof(InfoHeader) */ - - if (State->HeaderSize < 0) { + /* Avoid invoking undefined behavior in the State->HeaderSize calculation below */ + if (entry->DIBoffset > G_MAXINT - INFOHEADER_SIZE) { g_set_error (error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, @@ -320,6 +320,10 @@ static void DecodeHeader(guchar *Data, gint Bytes, return; } + /* We know how many bytes are in the "header" part. */ + State->HeaderSize = entry->DIBoffset + INFOHEADER_SIZE; + + if (State->HeaderSize>State->BytesInHeaderBuf) { guchar *tmp=g_try_realloc(State->HeaderBuf,State->HeaderSize); if (!tmp) { debian/patches/CVE-2016-6352.patch0000664000000000000000000001712612770476447013271 0ustar Description: Fix a write out-of-bounds error parsing a malicious ico (CVE-2016-6352) Origin: upstream, https://git.gnome.org/browse/gdk-pixbuf/patch/?id=88af50a864195da1a4f7bda5f02539704fbda599 Bug: https://bugzilla.gnome.org/show_bug.cgi?id=769170 Forwarded: not-needed Last-Update: 2016-09-20 --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/io-ico.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/io-ico.c @@ -23,6 +23,8 @@ */ #undef DUMPBIH +#define DEBUG(s) + /* Icons are just like BMP's, except for the header. @@ -75,14 +77,14 @@ struct BitmapInfoHeader { }; #ifdef DUMPBIH -/* +/* DumpBIH printf's the values in a BitmapInfoHeader to the screen, for debugging purposes. */ static void DumpBIH(unsigned char *BIH) -{ +{ printf("biSize = %i \n", (int)(BIH[3] << 24) + (BIH[2] << 16) + (BIH[1] << 8) + (BIH[0])); printf("biWidth = %i \n", @@ -125,6 +127,8 @@ struct headerpair { /* Score the various parts of the icon */ struct ico_direntry_data { gint ImageScore; + gint width; + gint height; gint DIBoffset; gint x_hot; gint y_hot; @@ -220,10 +224,10 @@ static void DecodeHeader(guchar *Data, g /* First word should be 0 according to specs */ if (((Data[1] << 8) + Data[0]) != 0) { - g_set_error_literal (error, - GDK_PIXBUF_ERROR, - GDK_PIXBUF_ERROR_CORRUPT_IMAGE, - _("Invalid header in icon")); + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Invalid header in icon (%s)"), "first word"); return; } @@ -234,18 +238,19 @@ static void DecodeHeader(guchar *Data, g /* If it is not a cursor make sure it is actually an icon */ if (!State->cursor && imgtype != 1) { - g_set_error_literal (error, - GDK_PIXBUF_ERROR, - GDK_PIXBUF_ERROR_CORRUPT_IMAGE, - _("Invalid header in icon")); + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Invalid header in icon (%s)"), "image type"); return; } - IconCount = (Data[5] << 8) + (Data[4]); State->HeaderSize = 6 + IconCount*16; + DEBUG(g_print ("Image type: %d (%s)\nImage count: %d\n", imgtype, imgtype == 2 ? "cursor" : "icon", IconCount)); + if (State->HeaderSize>State->BytesInHeaderBuf) { guchar *tmp=g_try_realloc(State->HeaderBuf,State->HeaderSize); if (!tmp) { @@ -267,12 +272,26 @@ static void DecodeHeader(guchar *Data, g State->entries = 0; Ptr = Data + 6; for (I=0;IImageScore = (Ptr[11] << 24) + (Ptr[10] << 16) + (Ptr[9] << 8) + (Ptr[8]); - entry->x_hot = (Ptr[5] << 8) + Ptr[4]; - entry->y_hot = (Ptr[7] << 8) + Ptr[6]; - entry->DIBoffset = (Ptr[15]<<24)+(Ptr[14]<<16)+ - (Ptr[13]<<8) + (Ptr[12]); + entry->ImageScore = data_size; + entry->width = width ? width : 256; + entry->height = height ? height : 256; + entry->x_hot = x_hot; + entry->y_hot = y_hot; + entry->DIBoffset = data_offset; State->entries = g_list_insert_sorted (State->entries, entry, compare_direntry_scores); Ptr += 16; } @@ -283,10 +302,10 @@ static void DecodeHeader(guchar *Data, g entry = l->data; if (entry->DIBoffset < 0) { - g_set_error_literal (error, - GDK_PIXBUF_ERROR, - GDK_PIXBUF_ERROR_CORRUPT_IMAGE, - _("Invalid header in icon")); + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Invalid header in icon (%s)"), "dib offset"); return; } @@ -294,10 +313,10 @@ static void DecodeHeader(guchar *Data, g State->HeaderSize = entry->DIBoffset + 40; /* 40 = sizeof(InfoHeader) */ if (State->HeaderSize < 0) { - g_set_error_literal (error, - GDK_PIXBUF_ERROR, - GDK_PIXBUF_ERROR_CORRUPT_IMAGE, - _("Invalid header in icon")); + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Invalid header in icon (%s)"), "header size"); return; } @@ -344,9 +363,9 @@ static void DecodeHeader(guchar *Data, g #ifdef DUMPBIH DumpBIH(BIH); -#endif +#endif /* Add the palette to the headersize */ - + State->Header.width = (int)(BIH[7] << 24) + (BIH[6] << 16) + (BIH[5] << 8) + (BIH[4]); if (State->Header.width == 0) { @@ -360,18 +379,30 @@ static void DecodeHeader(guchar *Data, g (int)((BIH[11] << 24) + (BIH[10] << 16) + (BIH[9] << 8) + (BIH[8]))/2; /* /2 because the BIH height includes the transparency mask */ if (State->Header.height == 0) { - g_set_error_literal (error, - GDK_PIXBUF_ERROR, - GDK_PIXBUF_ERROR_CORRUPT_IMAGE, - _("Icon has zero height")); - return; + State->Header.height = 256; + } + + /* Negative heights mean top-down pixel-order */ + if (State->Header.height < 0) { + State->Header.height = -State->Header.height; + State->Header.Negative = 1; } + if (State->Header.width < 0) { + State->Header.width = -State->Header.width; + } + + if (State->Header.width != entry->width || + State->Header.height != entry->height) { + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Invalid header in icon (%s)"), "image size"); + return; + } + State->Header.depth = (BIH[15] << 8) + (BIH[14]); + State->Type = State->Header.depth; - State->Type = State->Header.depth; - if (State->Lines>=State->Header.height) - State->Type = 1; /* The transparency mask is 1 bpp */ - /* Determine the palette size. If the header indicates 0, it is actually the maximum for the bpp. You have to love the guys who made the spec. */ @@ -387,10 +418,10 @@ static void DecodeHeader(guchar *Data, g State->HeaderSize+=I; if (State->HeaderSize < 0) { - g_set_error_literal (error, - GDK_PIXBUF_ERROR, - GDK_PIXBUF_ERROR_CORRUPT_IMAGE, - _("Invalid header in icon")); + g_set_error (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Invalid header in icon (%s)"), "palette size"); return; } @@ -409,17 +440,6 @@ static void DecodeHeader(guchar *Data, g if (Bytes < State->HeaderSize) return; - /* Negative heights mean top-down pixel-order */ - if (State->Header.height < 0) { - State->Header.height = -State->Header.height; - State->Header.Negative = 1; - } - if (State->Header.width < 0) { - State->Header.width = -State->Header.width; - } - g_assert (State->Header.width > 0); - g_assert (State->Header.height > 0); - if (State->Type == 32) State->LineWidth = State->Header.width * 4; else if (State->Type == 24) @@ -462,7 +482,6 @@ static void DecodeHeader(guchar *Data, g if (State->pixbuf == NULL) { -#if 1 if (State->size_func) { gint width = State->Header.width; gint height = State->Header.height; @@ -473,7 +492,6 @@ static void DecodeHeader(guchar *Data, g return; } } -#endif State->pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, debian/patches/CVE-2015-4491-2.patch0000664000000000000000000000232112564662442013411 0ustar From 8dba67cb4f38d62a47757741ad41e3f245b4a32a Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 17 Aug 2015 18:52:47 +0200 Subject: pixops: Fix oversight for CVE-2015-4491 The n_x variable could be made large enough to overflow, too. Also included are various testcases for this vulnerability: - The original exploit (adapted for the testsuite) - Causing overflow by making both X and Y variables large - Causing overflow using only the X variable - Causing overflow using only the Y variable https://bugzilla.gnome.org/show_bug.cgi?id=752297 Index: gdk-pixbuf-2.30.7/gdk-pixbuf/pixops/pixops.c =================================================================== --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/pixops/pixops.c 2015-08-18 13:02:24.368193832 -0400 +++ gdk-pixbuf-2.30.7/gdk-pixbuf/pixops/pixops.c 2015-08-18 13:02:24.364193791 -0400 @@ -1195,7 +1195,11 @@ gsize n_weights; int *weights; - n_weights = SUBSAMPLE * SUBSAMPLE * n_x * n_y; + n_weights = SUBSAMPLE * SUBSAMPLE * n_x; + if (n_weights / (SUBSAMPLE * SUBSAMPLE) != n_x) + return NULL; /* overflow, bail */ + + n_weights *= n_y; if (n_weights / (SUBSAMPLE * SUBSAMPLE * n_x) != n_y) return NULL; /* overflow, bail */ debian/patches/CVE-2015-7673-3.patch0000664000000000000000000000337612605565473013434 0ustar From 6ddca835100107e6b5841ce9d56074f6d98c387e Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 20 Sep 2015 00:29:59 +0200 Subject: io-tga: Colormaps are always present, so always parse them. We might end up with a colormap with 0 entries, but whatever, it's a colormap. --- gdk-pixbuf/io-tga.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/gdk-pixbuf/io-tga.c b/gdk-pixbuf/io-tga.c index 70d1892..156a416 100644 --- a/gdk-pixbuf/io-tga.c +++ b/gdk-pixbuf/io-tga.c @@ -356,9 +356,8 @@ static gboolean fill_in_context(TGAContext *ctx, GError **err) || (ctx->hdr->type == TGA_TYPE_RLE_TRUECOLOR) || (ctx->hdr->type == TGA_TYPE_RLE_GRAYSCALE)); - if (ctx->hdr->has_cmap) - ctx->cmap_size = ((ctx->hdr->cmap_bpp + 7) >> 3) * - LE16(ctx->hdr->cmap_n_colors); + ctx->cmap_size = ((ctx->hdr->cmap_bpp + 7) >> 3) * + LE16(ctx->hdr->cmap_n_colors); alpha = ((ctx->hdr->bpp == 16) || (ctx->hdr->bpp == 32) || @@ -717,13 +716,6 @@ static gboolean try_colormap(TGAContext *ctx, GError **err) g_return_val_if_fail(ctx != NULL, FALSE); - if (ctx->cmap_size == 0) { - g_set_error_literal(err, GDK_PIXBUF_ERROR, - GDK_PIXBUF_ERROR_CORRUPT_IMAGE, - _("Image is corrupted or truncated")); - return FALSE; - } - n_colors = LE16(ctx->hdr->cmap_n_colors); ctx->cmap = colormap_new (n_colors); if (!ctx->cmap) { @@ -865,7 +857,7 @@ static gboolean try_preload(TGAContext *ctx, GError **err) return TRUE; } } - if (ctx->hdr->has_cmap && !ctx->cmap) { + if (!ctx->cmap) { if (ctx->in->size >= ctx->cmap_size) { if (!try_colormap(ctx, err)) return FALSE; -- cgit v0.11.2 debian/patches/CVE-2017-6313.patch0000664000000000000000000000200213225730602013230 0ustar From 210b16399a492d05efb209615a143920b24251f4 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Tue, 5 Dec 2017 11:51:02 +0100 Subject: icns: Protect against too short blocklen (CVE-2017-6313) The blocklen needs to be at least header sized to be valid, otherwise we can underflow picture data or mask data lengths. https://bugzilla.gnome.org/show_bug.cgi?id=779016 --- gdk-pixbuf/io-icns.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: gdk-pixbuf-2.30.7/gdk-pixbuf/io-icns.c =================================================================== --- gdk-pixbuf-2.30.7.orig/gdk-pixbuf/io-icns.c +++ gdk-pixbuf-2.30.7/gdk-pixbuf/io-icns.c @@ -84,7 +84,8 @@ load_resources (unsigned size, IN gpoint blocklen = GUINT32_FROM_BE (header->size); /* Check that blocklen isn't garbage */ - if (blocklen > icnslen - (current - bytes)) + if (blocklen > icnslen - (current - bytes) || + blocklen < sizeof (IcnsBlockHeader)) return FALSE; switch (size) debian/patches/CVE-2015-7673-2.patch0000664000000000000000000001527612605565464013435 0ustar From edf6fb8d856574bc3bb3a703037f56533229267c Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 20 Sep 2015 00:22:42 +0200 Subject: tga: Wrap TGAColormap struct in its own API Instead of poking into it directly. --- gdk-pixbuf/io-tga.c | 124 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 82 insertions(+), 42 deletions(-) diff --git a/gdk-pixbuf/io-tga.c b/gdk-pixbuf/io-tga.c index e382459..70d1892 100644 --- a/gdk-pixbuf/io-tga.c +++ b/gdk-pixbuf/io-tga.c @@ -63,8 +63,8 @@ typedef struct _IOBuffer IOBuffer; typedef struct _TGAHeader TGAHeader; typedef struct _TGAFooter TGAFooter; -typedef struct _TGAColormap TGAColormap; typedef struct _TGAColor TGAColor; +typedef struct _TGAColormap TGAColormap; typedef struct _TGAContext TGAContext; @@ -101,15 +101,15 @@ struct _TGAFooter { } sig; }; -struct _TGAColormap { - gint size; - TGAColor *cols; -}; - struct _TGAColor { guchar r, g, b, a; }; +struct _TGAColormap { + guint n_colors; + TGAColor colors[1]; +}; + struct _TGAContext { TGAHeader *hdr; guint rowstride; @@ -234,6 +234,51 @@ static void free_buffer(guchar *pixels, gpointer data) g_free(pixels); } +static TGAColormap * +colormap_new (guint n_colors) +{ + TGAColormap *cmap; + + g_assert (n_colors <= G_MAXUINT16); + + cmap = g_try_malloc0 (sizeof (TGAColormap) + (MAX (n_colors, 1) - 1) * sizeof (TGAColor)); + if (cmap == NULL) + return NULL; + + cmap->n_colors = n_colors; + + return cmap; +} + +static const TGAColor * +colormap_get_color (TGAColormap *cmap, + guint id) +{ + static const TGAColor transparent_black = { 0, 0, 0, 0 }; + + if (id >= cmap->n_colors) + return &transparent_black; + + return &cmap->colors[id]; +} + +static void +colormap_set_color (TGAColormap *cmap, + guint id, + const TGAColor *color) +{ + if (id >= cmap->n_colors) + return; + + cmap->colors[id] = *color; +} + +static void +colormap_free (TGAColormap *cmap) +{ + g_free (cmap); +} + static GdkPixbuf *get_contiguous_pixbuf (guint width, guint height, gboolean has_alpha) @@ -364,11 +409,12 @@ static void parse_data_for_row_pseudocolor(TGAContext *ctx) guchar *p = ctx->pptr; for (; upper_bound; upper_bound--, s++) { - *p++ = ctx->cmap->cols[*s].r; - *p++ = ctx->cmap->cols[*s].g; - *p++ = ctx->cmap->cols[*s].b; + const TGAColor *color = colormap_get_color (ctx->cmap, *s); + *p++ = color->r; + *p++ = color->g; + *p++ = color->b; if (ctx->hdr->cmap_bpp == 32) - *p++ = ctx->cmap->cols[*s].a; + *p++ = color->a; } } @@ -435,7 +481,7 @@ static gboolean parse_data_for_row(TGAContext *ctx, GError **err) return TRUE; } -static void write_rle_data(TGAContext *ctx, TGAColor *color, guint *rle_count) +static void write_rle_data(TGAContext *ctx, const TGAColor *color, guint *rle_count) { for (; *rle_count; (*rle_count)--) { g_memmove(ctx->pptr, (guchar *) color, ctx->pbuf->n_channels); @@ -463,7 +509,7 @@ static guint parse_rle_data_pseudocolor(TGAContext *ctx) return --n; } else { rle_num = (tag & 0x7f) + 1; - write_rle_data(ctx, &ctx->cmap->cols[*s], &rle_num); + write_rle_data(ctx, colormap_get_color (ctx->cmap, *s), &rle_num); s++, n++; if (ctx->pbuf_bytes_done == ctx->pbuf_bytes) { ctx->done = TRUE; @@ -476,14 +522,12 @@ static guint parse_rle_data_pseudocolor(TGAContext *ctx) return --n; } else { for (; raw_num; raw_num--) { - *ctx->pptr++ = - ctx->cmap->cols[*s].r; - *ctx->pptr++ = - ctx->cmap->cols[*s].g; - *ctx->pptr++ = - ctx->cmap->cols[*s].b; + const TGAColor *color = colormap_get_color (ctx->cmap, *s); + *ctx->pptr++ = color->r; + *ctx->pptr++ = color->g; + *ctx->pptr++ = color->b; if (ctx->pbuf->n_channels == 4) - *ctx->pptr++ = ctx->cmap->cols[*s].a; + *ctx->pptr++ = color->a; s++, n++; ctx->pbuf_bytes_done += ctx->pbuf->n_channels; if (ctx->pbuf_bytes_done == ctx->pbuf_bytes) { @@ -667,8 +711,9 @@ static gboolean parse_rle_data(TGAContext *ctx, GError **err) static gboolean try_colormap(TGAContext *ctx, GError **err) { - static guchar *p; - static guint n; + TGAColor color; + guchar *p; + guint i, n_colors; g_return_val_if_fail(ctx != NULL, FALSE); @@ -679,41 +724,38 @@ static gboolean try_colormap(TGAContext *ctx, GError **err) return FALSE; } - ctx->cmap = g_try_malloc(sizeof(TGAColormap)); + n_colors = LE16(ctx->hdr->cmap_n_colors); + ctx->cmap = colormap_new (n_colors); if (!ctx->cmap) { g_set_error_literal(err, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY, - _("Cannot allocate colormap structure")); - return FALSE; - } - ctx->cmap->size = LE16(ctx->hdr->cmap_n_colors); - ctx->cmap->cols = g_try_malloc(sizeof(TGAColor) * ctx->cmap->size); - if (!ctx->cmap->cols) { - g_set_error_literal(err, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY, - _("Cannot allocate colormap entries")); + _("Cannot allocate colormap")); return FALSE; } p = ctx->in->data; - for (n = 0; n < ctx->cmap->size; n++) { + color.a = 255; + + for (i = 0; i < n_colors; i++) { if ((ctx->hdr->cmap_bpp == 15) || (ctx->hdr->cmap_bpp == 16)) { guint16 col = p[0] + (p[1] << 8); - ctx->cmap->cols[n].b = (col >> 7) & 0xf8; - ctx->cmap->cols[n].g = (col >> 2) & 0xf8; - ctx->cmap->cols[n].r = col << 3; + color.b = (col >> 7) & 0xf8; + color.g = (col >> 2) & 0xf8; + color.r = col << 3; p += 2; } else if ((ctx->hdr->cmap_bpp == 24) || (ctx->hdr->cmap_bpp == 32)) { - ctx->cmap->cols[n].b = *p++; - ctx->cmap->cols[n].g = *p++; - ctx->cmap->cols[n].r = *p++; + color.b = *p++; + color.g = *p++; + color.r = *p++; if (ctx->hdr->cmap_bpp == 32) - ctx->cmap->cols[n].a = *p++; + color.a = *p++; } else { g_set_error_literal(err, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE, _("Unexpected bitdepth for colormap entries")); return FALSE; } + colormap_set_color (ctx->cmap, i, &color); } ctx->in = io_buffer_free_segment(ctx->in, ctx->cmap_size, err); if (!ctx->in) @@ -944,10 +986,8 @@ static gboolean gdk_pixbuf__tga_stop_load(gpointer data, GError **err) ctx->udata); } g_free (ctx->hdr); - if (ctx->cmap) { - g_free (ctx->cmap->cols); - g_free (ctx->cmap); - } + if (ctx->cmap) + colormap_free (ctx->cmap); if (ctx->pbuf) g_object_unref (ctx->pbuf); if (ctx->in && ctx->in->size) -- cgit v0.11.2 debian/patches/CVE-2015-7674.patch0000664000000000000000000000216412605565503013261 0ustar From e9a5704edaa9aee9498f1fbf6e1b70fcce2e55aa Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 22 Sep 2015 22:44:51 +0200 Subject: pixops: Don't overflow variables when shifting them If we shift by 16 bits we need to be sure those 16 bits actually exist. They do now. CVE-2015-7674 --- gdk-pixbuf/pixops/pixops.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gdk-pixbuf/pixops/pixops.c b/gdk-pixbuf/pixops/pixops.c index 4cdb5df..b0abecd 100644 --- a/gdk-pixbuf/pixops/pixops.c +++ b/gdk-pixbuf/pixops/pixops.c @@ -264,11 +264,11 @@ pixops_scale_nearest (guchar *dest_buf, double scale_x, double scale_y) { - int i; - int x; - int x_step = (1 << SCALE_SHIFT) / scale_x; - int y_step = (1 << SCALE_SHIFT) / scale_y; - int xmax, xstart, xstop, x_pos, y_pos; + gint64 i; + gint64 x; + gint64 x_step = (1 << SCALE_SHIFT) / scale_x; + gint64 y_step = (1 << SCALE_SHIFT) / scale_y; + gint64 xmax, xstart, xstop, x_pos, y_pos; const guchar *p; #define INNER_LOOP(SRC_CHANNELS,DEST_CHANNELS,ASSIGN_PIXEL) \ -- cgit v0.11.2 debian/libgdk-pixbuf2.0-dev.links.in0000664000000000000000000000015112316303047014356 0ustar /usr/lib/${DEB_HOST_MULTIARCH}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders /usr/bin/gdk-pixbuf-query-loaders debian/libgdk-pixbuf2.0-0-udeb.install0000664000000000000000000000015112316303047014575 0ustar usr/lib/*/*.so.* usr/lib usr/lib/*/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so usr/share/locale debian/changelog0000664000000000000000000003740013225723227011053 0ustar gdk-pixbuf (2.30.7-0ubuntu1.8) trusty-security; urgency=medium * SECURITY UPDATE: Integer overflow in gif_get_lzw function - debian/patches/CVE-2017-1000422.patch: fix in gdk-pixbuf/io-gif.c. - CVE-2017-1000422 * SECURITY UPDATE: DoS and integer overflow in io-ico.c - debian/patches/CVE-2017-6312.patch: fix potential integer overflow in gdk-pixbuf/io-ico.c. - CVE-2017-6312 * SECURITY UPDATE: DoS and integer underflow in load_resources function - debian/patches/CVE-2017-6313.patch: protect against too short blocklen in gdk-pixbuf/io-icns.c. - CVE-2017-6313 * SECURITY UPDATE: DoS (infinite loop) - debian/patches/CVE-2017-6314.patch: avoid overflow buffer size computation in gdk-pixbuf/io-tiff.c. - CVE-2017-6314 -- Leonidas S. Barbosa Thu, 11 Jan 2018 14:47:54 -0300 gdk-pixbuf (2.30.7-0ubuntu1.7) trusty-security; urgency=medium * SECURITY UPDATE: Integer overflow checks not enough - debian/patch/CVE-2017-2870.patch: checks for integer overflow in multiplication in gdk-pixbuf/io-tiff.c. - CVE-2017-2870 * SECURITY UPDATE: exploitable heap overflow - debian/patches/CVE-2017-2862-part1.patch: Throw error when number of colour components is unsupported in gdk-pixbuf/io-jpeg.c. - debian/patches/CVE-2017-2862-part2.patch: restore grayscale support in gdk-pixbuf/io-jpeg.c * SECURITY UPDATE: context-dependent to cause DoS - debian/patches/CVE-2017-6311.patch: return an error when ICO didn't load in gdk-pixbuf/io-ico. - CVE-2017-6311 -- Leonidas S. Barbosa Thu, 14 Sep 2017 11:38:36 -0300 gdk-pixbuf (2.30.7-0ubuntu1.6) trusty-security; urgency=medium * SECURITY UPDATE: Fix a write out-of-bounds error parsing a malicious ico - debian/patches/CVE-2016-6352.patch: Be more careful when parsing ico headers. Based on upstream patch. - Thanks to Franco Costantini for discovering this issue using QuickFuzz. - CVE-2016-6352 * SECURITY UPDATE: Fix a heap-based buffer overflow - debian/patches/CVE-2015-7552.patch: Protect against overflow. Based on upstream patches. - CVE-2015-7552 * SECURITY UPDATE: Fix multiple integer overflows - debian/patches/CVE-2015-8875.patch: use gint64 in more places to avoid overflow when shifting - CVE-2015-8875 -- Emily Ratliff Wed, 21 Sep 2016 09:38:31 -0500 gdk-pixbuf (2.30.7-0ubuntu1.2) trusty-security; urgency=medium * SECURITY UPDATE: Heap overflow and DoS with tga files - debian/patches/CVE-2015-7673-1.patch: pass on OOM conditions in make_weights functions in gdk-pixbuf/pixops/pixops.c - debian/patches/CVE-2015-7673-2.patch: Wrap TGAColormap struct in its own API in gdk-pixbuf/io-tga.c - debian/patches/CVE-2015-7673-3.patch: always parse colormaps in gdk-pixbuf/io-tga.c * SECURITY UPDATE: heap overflow when scaling GIF images - debian/patches/CVE-2015-767.patch: ensure variables are large enough when shifting bits in gdk-pixbuf/pixops/pixops.c -- Steve Beattie Thu, 08 Oct 2015 15:58:55 -0700 gdk-pixbuf (2.30.7-0ubuntu1.1) trusty-security; urgency=medium * SECURITY UPDATE: heap overflow when scaling bitmap images - debian/patches/CVE-2015-4491-1.patch: check for overflows in gdk-pixbuf/pixops/pixops.c. - debian/patches/CVE-2015-4491-2.patch: also check n_x in gdk-pixbuf/pixops/pixops.c. - CVE-2015-4491 -- Marc Deslauriers Tue, 18 Aug 2015 13:02:29 -0400 gdk-pixbuf (2.30.7-0ubuntu1) trusty; urgency=medium * New upstream version -- Sebastien Bacher Mon, 31 Mar 2014 17:15:34 +0200 gdk-pixbuf (2.30.6-1) unstable; urgency=medium * New upstream release. -- Emilio Pozuelo Monfort Sun, 09 Mar 2014 14:15:14 +0100 gdk-pixbuf (2.30.5-1) unstable; urgency=medium * New upstream release. * debian/control.in: + Build depend on gtk-doc-tools 1.20. + Drop unnecessary b-d on autotools-dev. -- Emilio Pozuelo Monfort Thu, 20 Feb 2014 20:37:53 +0100 gdk-pixbuf (2.30.4-1) unstable; urgency=low [ Michael Biebl ] * Use the official field for udebs: Package-Type. [ Jackson Doak ] * New upstream release (2.30.1). * debian/control: - Bump required glib version - Switch to libtiff over libtiff5. Closes: #681099, #736005. - Use canonical VCS fields * Update symbols * Create basic manpage for gdk-pixbuf-pixdata * debian/rules: Add upstream changelog location [ Emilio Pozuelo Monfort ] * New upstream release (2.30.4). * debian/control.in: + Bump glib requirement. + Bump shared-mime-info b-d, needed to properly detect tga files and use the right loader for them. This affects a couple of tests. + Standards-Version is 3.9.5, no changes needed. * debian/rules: + Let debhelper install NEWS as the upstream changelog, otherwise we end up with NEWS installed twice: as NEWS.gz and changelog.gz. -- Emilio Pozuelo Monfort Sun, 16 Feb 2014 20:21:48 +0100 gdk-pixbuf (2.28.2-1) unstable; urgency=low * New upstream release. -- Emilio Pozuelo Monfort Sat, 08 Jun 2013 18:32:31 +0200 gdk-pixbuf (2.28.1-2) unstable; urgency=low * debian/rules, debian/control: + Run dh-autoreconf to avoid an rpath issue on hurd. -- Emilio Pozuelo Monfort Sun, 02 Jun 2013 15:41:38 +0200 gdk-pixbuf (2.28.1-1) unstable; urgency=low * New upstream release. * Track stable releases again. * Drop explicit Build-Depends on gir1.2-glib-2.0. * Bump Standards-Version to 3.9.4. * Upload to unstable. -- Michael Biebl Thu, 09 May 2013 02:01:16 +0200 gdk-pixbuf (2.28.0-1) experimental; urgency=low * New upstream release. -- Emilio Pozuelo Monfort Tue, 26 Mar 2013 13:09:02 +0100 gdk-pixbuf (2.27.3-1) experimental; urgency=low * New upstream release. + d/p/0001-animation-Allow-prepare_func-call-in-stop_load.patch: - Removed, included upstream. -- Emilio Pozuelo Monfort Tue, 19 Mar 2013 00:23:11 +0100 gdk-pixbuf (2.27.2-2) experimental; urgency=low * d/p/0001-animation-Allow-prepare_func-call-in-stop_load.patch: + Backport patch from upstream GIT, fixes a crash with animations. Closes: #702780, #702517. -- Emilio Pozuelo Monfort Thu, 14 Mar 2013 22:19:36 +0100 gdk-pixbuf (2.27.2-1) experimental; urgency=low [ Martin Pitt ] * Add debian/tests: Simple compile/link/run autopkgtest. Thanks Rafał Cieślak! (LP: #1073528) [ Emilio Pozuelo Monfort ] * New upstream release. -- Emilio Pozuelo Monfort Sat, 02 Mar 2013 18:26:49 +0100 gdk-pixbuf (2.27.1-1) experimental; urgency=low * New upstream release. + debian/control.in: - Update build dependencies. + debian/libgdk-pixbuf2.0-0.symbols: - Updated for the new symbols. -- Emilio Pozuelo Monfort Sat, 23 Feb 2013 19:58:45 +0100 gdk-pixbuf (2.26.4-2) experimental; urgency=low * Team upload * Add a -dbg package * Go to debhelper compat level 9, for compressed symbol files -- Simon McVittie Wed, 24 Oct 2012 19:37:52 +0100 gdk-pixbuf (2.26.4-1) experimental; urgency=low * Team upload * New upstream bugfix release -- Simon McVittie Tue, 23 Oct 2012 16:41:38 +0100 gdk-pixbuf (2.26.1-1) unstable; urgency=low * New upstream bug fix release: - Fix srcdir != builddir build. - Avoid an integer overflow in the xbm loader. (LP: #681150) - Translation updates. * debian/control.in: Prefer building against libpng-dev over libpng12-dev, to be prepared for the libpng 1.5 transition. (Closes: #662344) * debian/control.in: Bump Standards-Version to 3.9.3 (no changes necessary). -- Martin Pitt Mon, 16 Apr 2012 07:21:41 +0200 gdk-pixbuf (2.26.0-2) unstable; urgency=low * Upload to unstable. -- Michael Biebl Fri, 30 Mar 2012 09:01:26 +0200 gdk-pixbuf (2.26.0-1) experimental; urgency=low * New upstream release. -- Michael Biebl Wed, 21 Mar 2012 01:48:57 +0100 gdk-pixbuf (2.25.2-1) experimental; urgency=low * New upstream development release. * debian/libgdk-pixbuf2.0-0.symbols: Add new symbols. * debian/libgdk-pixbuf2.0-dev.install: Install gdk-pixbuf-pixdata tool. * debian/control.in: Bump Build-Depends on libglib2.0-dev to (>= 2.31.0). -- Michael Biebl Sun, 04 Mar 2012 07:45:41 +0100 gdk-pixbuf (2.24.1-1) unstable; urgency=low * New upstream release. * Explicitly enable X11 support. * Use upper case form of term GDK in package description. (Closes: #622217) -- Michael Biebl Mon, 06 Feb 2012 04:39:50 +0100 gdk-pixbuf (2.24.0-2) unstable; urgency=low [ Michael Biebl ] * debian/watch: - Switch to .xz tarballs. [ Josselin Mouette ] * Split locales in a separate package for multiarch: libgdk-pixbuf2.0-common. Make it m-a: foreign. [ Michael Biebl ] * Change section of gir1.2-gdkpixbuf-2.0 to introspection. -- Michael Biebl Wed, 14 Dec 2011 22:12:21 +0100 gdk-pixbuf (2.24.0-1) unstable; urgency=low * New upstream bug fix release. -- Martin Pitt Fri, 02 Sep 2011 12:05:31 +0200 gdk-pixbuf (2.23.5-3) unstable; urgency=low * debian/rules: - Trap errors in for loop using 'set -e'. * debian/libgdk-pixbuf2.0-0.postinst.in: - Don't hide error messages from gdk-pixbuf-query-loaders. - Handle more gracefully the case where the non-multiarch loaders directory is empty or doesn't exist. -- Michael Biebl Thu, 28 Jul 2011 18:18:06 +0200 gdk-pixbuf (2.23.5-2) unstable; urgency=low [ Steve Langasek ] * Multiarch support. (Closes: #632354) [ Michael Biebl ] * debian/libgdk-pixbuf2.0-dev.install: - Don't ship libtool .la file as this breaks multiarch. * debian/control.in: - Change Build-Depends on libjpeg62-dev to libjpeg-dev in preparation of the libjpeg8 transition. (Closes: #633940) -- Michael Biebl Sat, 16 Jul 2011 01:25:32 +0200 gdk-pixbuf (2.23.5-1) unstable; urgency=low * New upstream release. * debian/watch: Switch to .bz2 tarballs. * Refresh debian/patches/041_ia32-libs.patch. * Bump Standards-Version to 3.9.2. No further changes. * Bump debhelper compatiblility level to 8. - Update Build-Depends on debhelper. - Strip debian/tmp/ from .install files. -- Michael Biebl Sat, 02 Jul 2011 00:45:36 +0200 gdk-pixbuf (2.23.3-3.1) unstable; urgency=high * Non-maintainer upload by the Security Team. * Fix improper check of gif_main_loop() resulting in DoS conditions on specially crafted GIF images (CVE-2011-2485; Closes: #631524) -- Nico Golde Tue, 28 Jun 2011 21:59:16 +0200 gdk-pixbuf (2.23.3-3) unstable; urgency=low * Move the mime.cache generation from gtk+ udebs to this one, since this file is actually needed for gdk_pixbuf. * Add related build-dependencies on shared-mime-info and xsltproc. -- Josselin Mouette Sun, 10 Apr 2011 18:04:19 +0200 gdk-pixbuf (2.23.3-2) unstable; urgency=low * Upload to unstable. -- Josselin Mouette Sun, 10 Apr 2011 15:27:42 +0200 gdk-pixbuf (2.23.3-1) experimental; urgency=low [ Laurent Bigonville ] * New Upstream release - Bump libglib2.0-dev build-dependency * Make libgdk-pixbuf2.0-dev Breaks/Replaces libgtk2.0-bin (<< 2.21.3) (Closes: #612580) * debian/control.in, debian/rules: Rely on cdbs to call dh_girepository [ Josselin Mouette ] * Make the -dev package depend on the gir package. * Add missing Replaces on gir1.2-gtk-2.0. Closes: #620572. -- Laurent Bigonville Tue, 05 Apr 2011 11:21:38 +0200 gdk-pixbuf (2.23.0-2) experimental; urgency=low * Re-add .la files, too much other packages are still referencing it. (Closes: #607000, LP: #665768) -- Laurent Bigonville Tue, 04 Jan 2011 20:54:56 +0100 gdk-pixbuf (2.23.0-1) experimental; urgency=low * New upstream development release. - debian/libgdk-pixbuf2.0-0.symbols: + Updated. * debian/rules: - Blindly bump the shlibs version. We've got a symbols file anyway and updating the version is error prone. - Run the test suite during the build. -- Emilio Pozuelo Monfort Fri, 24 Dec 2010 20:10:44 +0000 gdk-pixbuf (2.22.1-4) experimental; urgency=low * Update to the new gir policy: - Rename gir1.0-gdkpixbuf-2.0 to gir1.2-gdkpixbuf-2.0. - Bump the gobject-introspection build dependency. - Build depend on gir1.2 packages. -- Emilio Pozuelo Monfort Sat, 11 Dec 2010 19:24:49 +0100 gdk-pixbuf (2.22.1-3) experimental; urgency=low * debian/control.in: - Add Replaces: gir-repository-dev for libgdk-pixbuf2.0-dev package (Closes: #605734) - Use Breaks instead of Conflicts when required -- Laurent Bigonville Sun, 05 Dec 2010 19:04:56 +0100 gdk-pixbuf (2.22.1-2) experimental; urgency=low * debian/watch: Fix URL pattern -- Laurent Bigonville Tue, 23 Nov 2010 20:36:29 +0100 gdk-pixbuf (2.22.1-1) experimental; urgency=low [ Emilio Pozuelo Monfort ] * Add a gir package, based on the Ubuntu changes. [ Laurent Bigonville ] * New upstream stable release. - Bump build-dependencies * debian/control.in: - Bump Standards-Version to 3.9.1 (no further changes) - Use Debian GNOME Maintainers team as Maintainer - Add Vcs-Svn and Vcs-Browser fields - Add dependency against libpng12-dev on libgdk-pixbuf2.0-dev package (as required by the .pc file) * debian/rules: Pass --enable-introspection to configure * debian/libgdk-pixbuf2.0-dev.install: Install .gir file -- Laurent Bigonville Mon, 22 Nov 2010 19:14:29 +0100 gdk-pixbuf (2.22.0-1) experimental; urgency=low * New upstream stable release. -- Sebastian Dröge Tue, 21 Sep 2010 20:49:40 +0200 gdk-pixbuf (2.21.7-1) experimental; urgency=low * New upstream development release: + debian/patches/041_ia32-libs.patch: - Refreshed. -- Sebastian Dröge Fri, 10 Sep 2010 15:41:43 +0200 gdk-pixbuf (2.21.6-2) experimental; urgency=low * debian/control.in: + Add Breaks for libwmf0.2-7 (<< 0.2.8.4-7) and librsvg2-2 (<< 2.26.3-2) because of the new location for the pixbuf loaders. -- Sebastian Dröge Fri, 23 Jul 2010 07:49:08 +0200 gdk-pixbuf (2.21.6-1) experimental; urgency=low [ Robert Ancell ] * Initial release [ Sebastian Dröge ] * debian/control.in: + Fix GTK+2.0 replaces/conflicts versions to << 2.21.3. + Rename packages to include the 2.0 API version. * debian/rules, debian/libgdk-pixbuf2.0-0.symbols: + Add symbols file and pass correct parameters to dh_makeshlibs. * debian/copyright: + Update with all copyright holders. * debian/control.in, debian/rules, debian/libgdk-pixbuf2.0-0-udeb.install: + Add udeb package. * debian/rules: + Enable libjasper JPEG2000 loader. * debian/rules: + Generate loader files for the udeb. * debian/libgdk-pixbuf2.0-0.triggers, debian/libgdk-pixbuf2.0-0.postinst, debian/libgdk-pixbuf2.0-0.postrm: + Use triggers for the pixbuf loaders. * debian/libgdk-pixbuf2.0-0.install, debian/libgdk-pixbuf2.0-dev.links: + Put gdk-pixbuf-query-loaders into a versioned directory and put a link to it for /usr/bin into the -dev package. + Move manpage into the -dev package too. * debian/control.in, + Add libx11-dev and libglib2.0-dev to the -dev package dependencies. + Build depend on libx11-dev. -- Sebastian Dröge Thu, 22 Jul 2010 17:20:30 +0200 debian/libgdk-pixbuf2.0-0.symbols0000664000000000000000000001415412316303047013712 0ustar libgdk_pixbuf-2.0.so.0 libgdk-pixbuf2.0-0 #MINVER# gdk_colorspace_get_type@Base 2.22.0 gdk_interp_type_get_type@Base 2.22.0 gdk_pixbuf_add_alpha@Base 2.22.0 gdk_pixbuf_alpha_mode_get_type@Base 2.22.0 gdk_pixbuf_animation_get_height@Base 2.22.0 gdk_pixbuf_animation_get_iter@Base 2.22.0 gdk_pixbuf_animation_get_static_image@Base 2.22.0 gdk_pixbuf_animation_get_type@Base 2.22.0 gdk_pixbuf_animation_get_width@Base 2.22.0 gdk_pixbuf_animation_is_static_image@Base 2.22.0 gdk_pixbuf_animation_iter_advance@Base 2.22.0 gdk_pixbuf_animation_iter_get_delay_time@Base 2.22.0 gdk_pixbuf_animation_iter_get_pixbuf@Base 2.22.0 gdk_pixbuf_animation_iter_get_type@Base 2.22.0 gdk_pixbuf_animation_iter_on_currently_loading_frame@Base 2.22.0 gdk_pixbuf_animation_new_from_file@Base 2.22.0 gdk_pixbuf_animation_new_from_resource@Base 2.27.1 gdk_pixbuf_animation_new_from_stream@Base 2.27.1 gdk_pixbuf_animation_new_from_stream_async@Base 2.27.1 gdk_pixbuf_animation_new_from_stream_finish@Base 2.27.1 gdk_pixbuf_animation_ref@Base 2.22.0 gdk_pixbuf_animation_unref@Base 2.22.0 gdk_pixbuf_apply_embedded_orientation@Base 2.22.0 gdk_pixbuf_composite@Base 2.22.0 gdk_pixbuf_composite_color@Base 2.22.0 gdk_pixbuf_composite_color_simple@Base 2.22.0 gdk_pixbuf_copy@Base 2.22.0 gdk_pixbuf_copy_area@Base 2.22.0 gdk_pixbuf_error_get_type@Base 2.22.0 gdk_pixbuf_error_quark@Base 2.22.0 gdk_pixbuf_fill@Base 2.22.0 gdk_pixbuf_flip@Base 2.22.0 gdk_pixbuf_format_copy@Base 2.22.0 gdk_pixbuf_format_free@Base 2.22.0 gdk_pixbuf_format_get_description@Base 2.22.0 gdk_pixbuf_format_get_extensions@Base 2.22.0 gdk_pixbuf_format_get_license@Base 2.22.0 gdk_pixbuf_format_get_mime_types@Base 2.22.0 gdk_pixbuf_format_get_name@Base 2.22.0 gdk_pixbuf_format_get_type@Base 2.22.0 gdk_pixbuf_format_is_disabled@Base 2.22.0 gdk_pixbuf_format_is_scalable@Base 2.22.0 gdk_pixbuf_format_is_writable@Base 2.22.0 gdk_pixbuf_format_set_disabled@Base 2.22.0 gdk_pixbuf_from_pixdata@Base 2.22.0 gdk_pixbuf_get_bits_per_sample@Base 2.22.0 gdk_pixbuf_get_byte_length@Base 2.25.2 gdk_pixbuf_get_colorspace@Base 2.22.0 gdk_pixbuf_get_file_info@Base 2.22.0 gdk_pixbuf_get_formats@Base 2.22.0 gdk_pixbuf_get_has_alpha@Base 2.22.0 gdk_pixbuf_get_height@Base 2.22.0 gdk_pixbuf_get_n_channels@Base 2.22.0 gdk_pixbuf_get_option@Base 2.22.0 gdk_pixbuf_get_pixels@Base 2.22.0 gdk_pixbuf_get_pixels_with_length@Base 2.25.2 gdk_pixbuf_get_rowstride@Base 2.22.0 gdk_pixbuf_get_type@Base 2.22.0 gdk_pixbuf_get_width@Base 2.22.0 gdk_pixbuf_gettext@Base 2.22.0 gdk_pixbuf_loader_close@Base 2.22.0 gdk_pixbuf_loader_get_animation@Base 2.22.0 gdk_pixbuf_loader_get_format@Base 2.22.0 gdk_pixbuf_loader_get_pixbuf@Base 2.22.0 gdk_pixbuf_loader_get_type@Base 2.22.0 gdk_pixbuf_loader_new@Base 2.22.0 gdk_pixbuf_loader_new_with_mime_type@Base 2.22.0 gdk_pixbuf_loader_new_with_type@Base 2.22.0 gdk_pixbuf_loader_set_size@Base 2.22.0 gdk_pixbuf_loader_write@Base 2.22.0 gdk_pixbuf_loader_write_bytes@Base 2.30.1 gdk_pixbuf_major_version@Base 2.22.0 gdk_pixbuf_micro_version@Base 2.22.0 gdk_pixbuf_minor_version@Base 2.22.0 gdk_pixbuf_new@Base 2.22.0 gdk_pixbuf_new_from_data@Base 2.22.0 gdk_pixbuf_new_from_file@Base 2.22.0 gdk_pixbuf_new_from_file_at_scale@Base 2.22.0 gdk_pixbuf_new_from_file_at_size@Base 2.22.0 gdk_pixbuf_new_from_inline@Base 2.22.0 gdk_pixbuf_new_from_resource@Base 2.25.2 gdk_pixbuf_new_from_resource_at_scale@Base 2.25.2 gdk_pixbuf_new_from_stream@Base 2.22.0 gdk_pixbuf_new_from_stream_async@Base 2.23.0 gdk_pixbuf_new_from_stream_at_scale@Base 2.22.0 gdk_pixbuf_new_from_stream_at_scale_async@Base 2.23.0 gdk_pixbuf_new_from_stream_finish@Base 2.23.0 gdk_pixbuf_new_from_xpm_data@Base 2.22.0 gdk_pixbuf_new_subpixbuf@Base 2.22.0 gdk_pixbuf_non_anim_get_type@Base 2.22.0 gdk_pixbuf_non_anim_new@Base 2.22.0 gdk_pixbuf_ref@Base 2.22.0 gdk_pixbuf_rotate_simple@Base 2.22.0 gdk_pixbuf_rotation_get_type@Base 2.22.0 gdk_pixbuf_saturate_and_pixelate@Base 2.22.0 gdk_pixbuf_save@Base 2.22.0 gdk_pixbuf_save_to_buffer@Base 2.22.0 gdk_pixbuf_save_to_bufferv@Base 2.22.0 gdk_pixbuf_save_to_callback@Base 2.22.0 gdk_pixbuf_save_to_callbackv@Base 2.22.0 gdk_pixbuf_save_to_stream@Base 2.22.0 gdk_pixbuf_save_to_stream_async@Base 2.23.0 gdk_pixbuf_save_to_stream_finish@Base 2.23.0 gdk_pixbuf_savev@Base 2.22.0 gdk_pixbuf_scale@Base 2.22.0 gdk_pixbuf_scale_simple@Base 2.22.0 gdk_pixbuf_scaled_anim_get_type@Base 2.22.0 gdk_pixbuf_scaled_anim_iter_get_type@Base 2.22.0 gdk_pixbuf_set_option@Base 2.22.0 gdk_pixbuf_simple_anim_add_frame@Base 2.22.0 gdk_pixbuf_simple_anim_get_loop@Base 2.22.0 gdk_pixbuf_simple_anim_get_type@Base 2.22.0 gdk_pixbuf_simple_anim_iter_get_type@Base 2.22.0 gdk_pixbuf_simple_anim_new@Base 2.22.0 gdk_pixbuf_simple_anim_set_loop@Base 2.22.0 gdk_pixbuf_unref@Base 2.22.0 gdk_pixbuf_version@Base 2.22.0 gdk_pixdata_deserialize@Base 2.22.0 gdk_pixdata_from_pixbuf@Base 2.22.0 gdk_pixdata_serialize@Base 2.22.0 gdk_pixdata_to_csource@Base 2.22.0 libgdk_pixbuf_xlib-2.0.so.0 libgdk-pixbuf2.0-0 #MINVER# gdk_pixbuf_dpy@Base 2.22.0 gdk_pixbuf_screen@Base 2.22.0 gdk_pixbuf_xlib_get_from_drawable@Base 2.22.0 gdk_pixbuf_xlib_init@Base 2.22.0 gdk_pixbuf_xlib_init_with_depth@Base 2.22.0 gdk_pixbuf_xlib_render_pixmap_and_mask@Base 2.22.0 gdk_pixbuf_xlib_render_threshold_alpha@Base 2.22.0 gdk_pixbuf_xlib_render_to_drawable@Base 2.22.0 gdk_pixbuf_xlib_render_to_drawable_alpha@Base 2.22.0 xlib_draw_gray_image@Base 2.22.0 xlib_draw_indexed_image@Base 2.22.0 xlib_draw_rgb_32_image@Base 2.22.0 xlib_draw_rgb_image@Base 2.22.0 xlib_draw_rgb_image_dithalign@Base 2.22.0 xlib_rgb_cmap_free@Base 2.22.0 xlib_rgb_cmap_new@Base 2.22.0 xlib_rgb_ditherable@Base 2.22.0 xlib_rgb_gc_set_background@Base 2.22.0 xlib_rgb_gc_set_foreground@Base 2.22.0 xlib_rgb_get_cmap@Base 2.22.0 xlib_rgb_get_depth@Base 2.22.0 xlib_rgb_get_display@Base 2.22.0 xlib_rgb_get_screen@Base 2.22.0 xlib_rgb_get_visual@Base 2.22.0 xlib_rgb_get_visual_info@Base 2.22.0 xlib_rgb_init@Base 2.22.0 xlib_rgb_init_with_depth@Base 2.22.0 xlib_rgb_set_install@Base 2.22.0 xlib_rgb_set_min_colors@Base 2.22.0 xlib_rgb_set_verbose@Base 2.22.0 xlib_rgb_xpixel_from_rgb@Base 2.22.0 debian/libgdk-pixbuf2.0-0.postinst.in0000664000000000000000000000201112316303047014477 0ustar #!/bin/sh set -e LOADERS_DIR=/usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders LOADERS_DIR_OLD=/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders if [ "$1" = triggered ]; then for trigger in $2; do if ! [ -d $trigger ]; then continue fi case $trigger in $LOADERS_DIR|$LOADERS_DIR_OLD) # This is triggered everytime an application installs a # GdkPixbuf loader /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ $(find $LOADERS_DIR $LOADERS_DIR_OLD -name *.so 2> /dev/null) \ > /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders.cache || true ;; esac done exit 0 fi #DEBHELPER# # Also handle the initial installation if [ -d $LOADERS_DIR ] || [ -d $LOADERS_DIR_OLD ]; then /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ $(find $LOADERS_DIR $LOADERS_DIR_OLD -name *.so 2> /dev/null) \ > /usr/lib/#MULTIARCH#/gdk-pixbuf-2.0/2.10.0/loaders.cache || true fi debian/keep-png-only.xsl0000664000000000000000000000132212316303047012402 0ustar