diff options
author | Matthias Clasen <mclasen@redhat.com> | 2009-11-27 20:57:59 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2009-11-30 22:38:11 -0500 |
commit | 066c3c42dd01950ea56f5ed514e6ca14dd443cae (patch) | |
tree | 9f6ce3ef2182f61db0903dd46d29100b4073af77 | |
parent | caded18ecfa66801769ceb472a494231ca47b300 (diff) | |
download | gdk-pixbuf-066c3c42dd01950ea56f5ed514e6ca14dd443cae.tar.gz |
Allocate a large-enough and mask
We came up short when the image width is not a multiple of 8.
Bug 585383, fix by Felix Riemann.
(cherry picked from commit 869ee7f232d2afcf2c08003e4f279e21b58b9581)
-rw-r--r-- | gdk-pixbuf/io-ico.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gdk-pixbuf/io-ico.c b/gdk-pixbuf/io-ico.c index 4a6bad870..e7fedb929 100644 --- a/gdk-pixbuf/io-ico.c +++ b/gdk-pixbuf/io-ico.c @@ -1011,12 +1011,12 @@ fill_entry (IconEntry *icon, return FALSE; } - if ((icon->xor_rowstride % 4) != 0) + if ((icon->xor_rowstride % 4) != 0) icon->xor_rowstride = 4 * ((icon->xor_rowstride / 4) + 1); icon->xor = g_new0 (guchar, icon->xor_rowstride * icon->height); - icon->and_rowstride = icon->width / 8; - if ((icon->and_rowstride % 4) != 0) + icon->and_rowstride = (icon->width + 7) / 8; + if ((icon->and_rowstride % 4) != 0) icon->and_rowstride = 4 * ((icon->and_rowstride / 4) + 1); icon->and = g_new0 (guchar, icon->and_rowstride * icon->height); |