[gnumeric] Don't accept GNM_SHEET_PATTERNS as a valid pattern. [#702833]



commit 80cce97c2451fb1df3cb0b47e30c5cca5eb93bb4
Author: Jean Brefort <jean brefort normalesup org>
Date:   Sat Jun 22 11:14:54 2013 +0200

    Don't accept GNM_SHEET_PATTERNS as a valid pattern. [#702833]

 ChangeLog     |    6 ++++++
 NEWS          |    1 +
 src/mstyle.c  |    2 +-
 src/pattern.c |    5 +++--
 4 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index caf2085..c019fc5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-06-22  Jean Brefort  <jean brefort normalesup org>
+
+       * src/mstyle.c (gnm_style_set_pattern): don't accept GNM_SHEET_PATTERNS as
+       a valid pattern. [#702833]
+       * src/pattern.c (gnumeric_background_set): ditto.
+
 2013-06-21  Morten Welinder  <terra gnome org>
 
        * src/item-grid.c (item_grid_draw_region): Plug leak.
diff --git a/NEWS b/NEWS
index f9f3f72..1ebe788 100644
--- a/NEWS
+++ b/NEWS
@@ -47,6 +47,7 @@ Jean:
        * Adjust labels vertical alignment in document properties
          dialog. [#700156]
        * Don't crash when exchanging missing axes. [#702126]
+       * Don't accept GNM_SHEET_PATTERNS as a valid pattern. [#702833]
 
 Morten:
        * Improve xlsx import of style-only cells.
diff --git a/src/mstyle.c b/src/mstyle.c
index e43106a..cc929e2 100644
--- a/src/mstyle.c
+++ b/src/mstyle.c
@@ -1308,7 +1308,7 @@ gnm_style_set_pattern (GnmStyle *style, int pattern)
 {
        g_return_if_fail (style != NULL);
        g_return_if_fail (pattern >= 0);
-       g_return_if_fail (pattern <= GNUMERIC_SHEET_PATTERNS);
+       g_return_if_fail (pattern < GNUMERIC_SHEET_PATTERNS);
 
        elem_changed (style, MSTYLE_PATTERN);
        elem_set (style, MSTYLE_PATTERN);
diff --git a/src/pattern.c b/src/pattern.c
index e126fd0..2779ec9 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -68,7 +68,7 @@ gnumeric_background_set (GnmStyle const *mstyle, cairo_t *cr,
         * Draw a stipple too if the pattern is > 1
         */
        pattern = gnm_style_get_pattern (mstyle);
-       if (pattern > 0) {
+       if (pattern > 0 && pattern < GNUMERIC_SHEET_PATTERNS) {
                GOPattern gopat;
                cairo_pattern_t *crpat;
                gopat.pattern = patterns[pattern];
@@ -84,7 +84,8 @@ gnumeric_background_set (GnmStyle const *mstyle, cairo_t *cr,
                        gopat.back = GO_COLOR_INTERPOLATE (light, gopat.back, .5);
                }
                crpat = go_pattern_create_cairo_pattern (&gopat, cr);
-               cairo_set_source (cr, crpat);
+               if (crpat)
+                       cairo_set_source (cr, crpat);
                cairo_pattern_destroy (crpat);
                return TRUE;
        } else if (is_selected) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]