[librsvg/rustification] rsvg-filter: Don't use CLAMP(x, 0, max) on unsigned values



commit 6d199be6ab8dd345c7c7be8f31dac71c8c8c56e7
Author: Federico Mena Quintero <federico gnome org>
Date:   Tue Dec 13 14:03:53 2016 -0600

    rsvg-filter: Don't use CLAMP(x, 0, max) on unsigned values
    
    The comparison against 0 is always true anyway.
    
    Also, fix a potential out-of-bounds read in discrete_component_transfer_func().

 rsvg-filter.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/rsvg-filter.c b/rsvg-filter.c
index 973687b..2794145 100644
--- a/rsvg-filter.c
+++ b/rsvg-filter.c
@@ -2542,8 +2542,8 @@ table_component_transfer_func (gint C, RsvgNodeComponentTransferFunc * user_data
 
     k = (C * (num_values - 1)) / 255;
 
-    vk = user_data->tableValues[CLAMP (k, 0, num_values - 1)];
-    vk1 = user_data->tableValues[CLAMP (k + 1, 0, num_values - 1)];
+    vk = user_data->tableValues[MIN (k, num_values - 1)];
+    vk1 = user_data->tableValues[MIN (k + 1, num_values - 1)];
 
     distancefromlast = (C * (user_data->nbTableValues - 1)) - k * 255;
 
@@ -2560,7 +2560,7 @@ discrete_component_transfer_func (gint C, RsvgNodeComponentTransferFunc * user_d
 
     k = (C * user_data->nbTableValues) / 255;
 
-    return user_data->tableValues[CLAMP (k, 0, user_data->nbTableValues)];
+    return user_data->tableValues[CLAMP (k, 0, user_data->nbTableValues - 1)];
 }
 
 static gint


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