[goffice] Don't use invalid GOImage arguments. [#703949]
- From: Jean Bréfort <jbrefort src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [goffice] Don't use invalid GOImage arguments. [#703949]
- Date: Wed, 10 Jul 2013 15:05:31 +0000 (UTC)
commit bded6eedfb513ae29bb68ad47fb81ba6f8fe7464
Author: Jean Brefort <jean brefort normalesup org>
Date: Wed Jul 10 17:03:55 2013 +0200
Don't use invalid GOImage arguments. [#703949]
ChangeLog | 7 +++++++
NEWS | 1 +
goffice/utils/go-image.c | 7 ++++++-
3 files changed, 14 insertions(+), 1 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index c88020f..fe37a1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-07-10 Jean Brefort <jean brefort normalesup org>
+
+ * goffice/utils/go-image.c (go_image_get_thumbnail),
+ (go_image_get_pixbuf), (go_image_get_scaled_pixbuf),
+ (go_image_set_name), (go_image_get_width), (go_image_get_height): protect
+ against invalid image argument [#703949]
+
2013-07-09 Morten Welinder <terra gnome org>
* goffice/math/go-regression.c (general_linear_regression):
diff --git a/NEWS b/NEWS
index 33b519e..0b9a51e 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ Andreas:
Jean:
* Fix loading of image with invalid size or data. [#703740]
+ * Don't use invalid GOImage arguments. [#703949]
Morten:
* Fix linear regression failure.
diff --git a/goffice/utils/go-image.c b/goffice/utils/go-image.c
index 271f1e9..34e52f2 100644
--- a/goffice/utils/go-image.c
+++ b/goffice/utils/go-image.c
@@ -536,7 +536,7 @@ go_image_draw (GOImage *image, cairo_t *cr)
GdkPixbuf const *
go_image_get_thumbnail (GOImage *image)
{
- g_return_val_if_fail (image != NULL, NULL);
+ g_return_val_if_fail (GO_IS_IMAGE (image), NULL);
if (image->thumbnail == NULL)
image->thumbnail = go_image_get_scaled_pixbuf (image, GO_THUMBNAIL_SIZE, GO_THUMBNAIL_SIZE);
return image->thumbnail;
@@ -553,6 +553,7 @@ go_image_get_thumbnail (GOImage *image)
GdkPixbuf *
go_image_get_pixbuf (GOImage *image)
{
+ g_return_val_if_fail (GO_IS_IMAGE (image), NULL);
if (image->pixbuf == NULL)
image->pixbuf = ((GOImageClass *) G_OBJECT_GET_CLASS (image))->get_pixbuf (image);
return g_object_ref (image->pixbuf);
@@ -572,6 +573,7 @@ go_image_get_pixbuf (GOImage *image)
GdkPixbuf *
go_image_get_scaled_pixbuf (GOImage *image, int width, int height)
{
+ g_return_val_if_fail (GO_IS_IMAGE (image), NULL);
if (image->width > width || image->height > height) {
if (image->width * height > image->height * width) {
height = width * image->height / image->width;
@@ -719,6 +721,7 @@ go_image_get_data (GOImage *image, gsize *length)
void
go_image_set_name (GOImage *image, char const *name)
{
+ g_return_if_fail (GO_IS_IMAGE (image));
g_free (image->name);
image->name = (name)? g_strdup (name): NULL;
}
@@ -789,12 +792,14 @@ _go_image_changed (GOImage *image, double width, double height)
double
go_image_get_width (GOImage const *image)
{
+ g_return_val_if_fail (GO_IS_IMAGE (image), 0.);
return image->width;
}
double
go_image_get_height (GOImage const *image)
{
+ g_return_val_if_fail (GO_IS_IMAGE (image), 0.);
return image->height;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]