[gtk+/native-layout] Avoid an FPE for ludicrous scale values
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/native-layout] Avoid an FPE for ludicrous scale values
- Date: Sun, 4 Apr 2010 02:16:25 +0000 (UTC)
commit 675ead1d824183b7cc389c3154c4f3ff2cf40b09
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Jan 8 13:20:28 2010 -0500
Avoid an FPE for ludicrous scale values
...just bail out early.
gdk-pixbuf/pixops/pixops.c | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/gdk-pixbuf/pixops/pixops.c b/gdk-pixbuf/pixops/pixops.c
index 513d16f..353021a 100644
--- a/gdk-pixbuf/pixops/pixops.c
+++ b/gdk-pixbuf/pixops/pixops.c
@@ -1251,11 +1251,20 @@ pixops_process (guchar *dest_buf,
int i, j;
int x, y; /* X and Y position in source (fixed_point) */
- guchar **line_bufs = g_new (guchar *, filter->y.n);
- int *filter_weights = make_filter_table (filter);
+ guchar **line_bufs;
+ int *filter_weights;
- int x_step = (1 << SCALE_SHIFT) / scale_x; /* X step in source (fixed point) */
- int y_step = (1 << SCALE_SHIFT) / scale_y; /* Y step in source (fixed point) */
+ int x_step;
+ int y_step;
+
+ x_step = (1 << SCALE_SHIFT) / scale_x; /* X step in source (fixed point) */
+ y_step = (1 << SCALE_SHIFT) / scale_y; /* Y step in source (fixed point) */
+
+ if (x_step == 0 || y_step == 0)
+ return; /* overflow, bail out */
+
+ line_bufs = g_new (guchar *, filter->y.n);
+ filter_weights = make_filter_table (filter);
int check_shift = check_size ? get_check_shift (check_size) : 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]