Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
gdk-pixbuf.33887
gdk-pixbuf-bgo768484-ico-set-errors.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gdk-pixbuf-bgo768484-ico-set-errors.patch of Package gdk-pixbuf.33887
From 0cff83e985fba5350695c00ed1ac30fc31ec5960 Mon Sep 17 00:00:00 2001 From: Hanno Boeck <hanno@hboeck.de> Date: Wed, 6 Jul 2016 13:05:00 +0000 Subject: [PATCH] ico: Always set errors When the ico header turn out to be bad, always set an error when we fail. Otherwise, applications will get confused. This commit also adds an example image with a bad ico header. https://bugzilla.gnome.org/show_bug.cgi?id=768484 --- gdk-pixbuf/io-ico.c | 14 ++++++++++++-- tests/test-images/randomly-modified/bad-header.ico | Bin 0 -> 6 bytes 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 tests/test-images/randomly-modified/bad-header.ico diff --git a/gdk-pixbuf/io-ico.c b/gdk-pixbuf/io-ico.c index 86714af..82d3e4e 100644 --- a/gdk-pixbuf/io-ico.c +++ b/gdk-pixbuf/io-ico.c @@ -258,8 +258,13 @@ static void DecodeHeader(guchar *Data, gint Bytes, State->HeaderBuf = tmp; State->BytesInHeaderBuf = State->HeaderSize; } - if (Bytes < State->HeaderSize) + if (Bytes < State->HeaderSize) { + g_set_error_literal (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Not enough bytes for header")); return; + } /* Now iterate through the ICONDIRENTRY structures, and sort them by * which one we think is "best" (essentially the largest) */ @@ -399,8 +404,13 @@ static void DecodeHeader(guchar *Data, gint Bytes, State->HeaderBuf = tmp; State->BytesInHeaderBuf = State->HeaderSize; } - if (Bytes < State->HeaderSize) + if (Bytes < State->HeaderSize) { + g_set_error_literal (error, + GDK_PIXBUF_ERROR, + GDK_PIXBUF_ERROR_CORRUPT_IMAGE, + _("Not enough bytes for header")); return; + } /* Negative heights mean top-down pixel-order */ if (State->Header.height < 0) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor