summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2008-10-13 14:18:40 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-10-13 14:18:40 +0000
commite74968f8ef28b7d1ae3957c278e0fe5af77e7b56 (patch)
treec43deee816ce052b6dd29da6c041d0672615e6e6
parentaadcba2dc50bba4b007502e6d50fc1cdff6bc2f3 (diff)
downloadgtk+-e74968f8ef28b7d1ae3957c278e0fe5af77e7b56.tar.gz
Bug 555791 – Natuilus Crashes when opening USB MP3 Player Contents
2008-10-13 Matthias Clasen <mclasen@redhat.com> Bug 555791 – Natuilus Crashes when opening USB MP3 Player Contents * io-tga.c (gdk_pixbuf__tga_stop_load): Don't segfault on short files. Problem reported by Pedro Villavicencio svn path=/trunk/; revision=21643
-rw-r--r--gdk-pixbuf/ChangeLog8
-rw-r--r--gdk-pixbuf/io-tga.c8
2 files changed, 13 insertions, 3 deletions
diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog
index 650ca00d41..4d88a4359e 100644
--- a/gdk-pixbuf/ChangeLog
+++ b/gdk-pixbuf/ChangeLog
@@ -1,3 +1,11 @@
+2008-10-13 Matthias Clasen <mclasen@redhat.com>
+
+ Bug 555791 – Natuilus Crashes when opening USB MP3 Player Contents
+
+ * io-tga.c (gdk_pixbuf__tga_stop_load): Don't segfault on
+ short files.
+ Problem reported by Pedro Villavicencio
+
2008-10-01 Tor Lillqvist <tml@novell.com>
* io-icns.c: Don't #define _GNU_SOURCE on Windows as it confuses
diff --git a/gdk-pixbuf/io-tga.c b/gdk-pixbuf/io-tga.c
index c35eaef916..e42758c198 100644
--- a/gdk-pixbuf/io-tga.c
+++ b/gdk-pixbuf/io-tga.c
@@ -349,7 +349,7 @@ static gboolean fill_in_context(TGAContext *ctx, GError **err)
}
ctx->pbuf_bytes = ctx->pbuf->rowstride * ctx->pbuf->height;
- if (ctx->hdr->flags & TGA_ORIGIN_UPPER || ctx->run_length_encoded)
+ if ((ctx->hdr->flags & TGA_ORIGIN_UPPER) || ctx->run_length_encoded)
ctx->pptr = ctx->pbuf->pixels;
else
ctx->pptr = ctx->pbuf->pixels + (ctx->pbuf->height - 1)*ctx->pbuf->rowstride;
@@ -935,8 +935,10 @@ static gboolean gdk_pixbuf__tga_stop_load(gpointer data, GError **err)
TGAContext *ctx = (TGAContext *) data;
g_return_val_if_fail(ctx != NULL, FALSE);
- if (!(ctx->hdr->flags & TGA_ORIGIN_UPPER) &&
- ctx->run_length_encoded && ctx->pbuf) {
+ if (ctx->hdr &&
+ (ctx->hdr->flags & TGA_ORIGIN_UPPER) == 0 &&
+ ctx->run_length_encoded &&
+ ctx->pbuf) {
pixbuf_flip_vertically (ctx->pbuf);
if (ctx->ufunc)
(*ctx->ufunc) (ctx->pbuf, 0, 0,