motioncells: fix splitting of RGB color string
authorReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Mon, 28 Dec 2015 06:32:22 +0000 (22:32 -0800)
committerReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Mon, 28 Dec 2015 07:26:50 +0000 (23:26 -0800)
No need to attempt splitting the RGB string in 255 tokens
if we only expect 3.

Left max_tokens at 4 to preserve the current logic (which
allows for extra stuff at the end) and added a warning on
parsing failure instead of silently discarding the value.

ext/opencv/gstmotioncells.cpp

index f5220aa..e1d412f 100644 (file)
@@ -541,10 +541,13 @@ gst_motion_cells_set_property (GObject * object, guint prop_id,
       tmply = -1;
       break;
     case PROP_CELLSCOLOR:
-      colorstr = g_strsplit (g_value_get_string (value), ",", 255);
+      colorstr = g_strsplit (g_value_get_string (value), ",", 4);
       for (cellscolorscnt = 0; colorstr[cellscolorscnt] != NULL;
           ++cellscolorscnt);
-      if (cellscolorscnt == 3) {
+      if (cellscolorscnt != 3) {
+        GST_WARNING_OBJECT (filter, "Ignoring badly-formatted cellscolor RGB "
+            "string");
+      } else {
         sscanf (colorstr[0], "%d", &r);
         sscanf (colorstr[1], "%d", &g);
         sscanf (colorstr[2], "%d", &b);