[gegl] opencl: out-of-bounds access in box-blur



commit eea77a6da0fb95b112b3de9607694d31bbe026cd
Author: Victor Oliveira <victormatheus gmail com>
Date:   Sun Dec 30 01:36:27 2012 -0200

    opencl: out-of-bounds access in box-blur

 operations/common/box-blur.c |   28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)
---
diff --git a/operations/common/box-blur.c b/operations/common/box-blur.c
index 4bd23ab..6c0b255 100644
--- a/operations/common/box-blur.c
+++ b/operations/common/box-blur.c
@@ -243,12 +243,13 @@ static const char* kernel_source =
 "  mean = (float4)(0.0f);                                                                           \n"
 "                                                                                                   \n"
 "  if (get_global_id(1) < width)                                                                    \n"
-"    for (i=-radius; i <= radius; i++)                                                              \n"
-"      {                                                                                            \n"
-"        mean += in[in_index + i];                                                                  \n"
-"      }                                                                                            \n"
-"                                                                                                   \n"
-"  aux[aux_index] = mean / (2 * radius + 1);                                                        \n"
+"    {                                                                                              \n"
+"      for (i=-radius; i <= radius; i++)                                                            \n"
+"        {                                                                                          \n"
+"          mean += in[in_index + i];                                                                \n"
+"        }                                                                                          \n"
+"      aux[aux_index] = mean / (2 * radius + 1);                                                    \n"
+"    }                                                                                              \n"
 "}                                                                                                  \n"
 
 "__kernel void kernel_blur_ver (__global const float4     *aux,                                     \n"
@@ -264,13 +265,14 @@ static const char* kernel_source =
 "  int aux_index = get_global_id(0) * width + get_global_id (1);                                    \n"
 "                                                                                                   \n"
 "  if(get_global_id(1) < width)                                                                     \n"
-"    for (i=-radius; i <= radius; i++)                                                              \n"
-"      {                                                                                            \n"
-"        mean += aux[aux_index];                                                                    \n"
-"        aux_index += width;                                                                        \n"
-"      }                                                                                            \n"
-"                                                                                                   \n"
-"  out[out_index] = mean / (2 * radius + 1);                                                        \n"
+"    {                                                                                              \n"
+"      for (i=-radius; i <= radius; i++)                                                            \n"
+"        {                                                                                          \n"
+"          mean += aux[aux_index];                                                                  \n"
+"          aux_index += width;                                                                      \n"
+"        }                                                                                          \n"
+"      out[out_index] = mean / (2 * radius + 1);                                                    \n"
+"    }                                                                                              \n"
 "}                                                                                                  \n";
 
 static GeglClRunData *cl_data = NULL;



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