ges: Always check return value of `ges_container_add`
authorThibault Saunier <tsaunier@igalia.com>
Thu, 9 Apr 2020 14:31:36 +0000 (10:31 -0400)
committerThibault Saunier <tsaunier@igalia.com>
Fri, 10 Apr 2020 15:12:12 +0000 (11:12 -0400)
Making coverity happy

CIDs: 14614601461461146146214614631461464146146514614661461468,

ges/ges-base-xml-formatter.c
ges/ges-clip.c
ges/ges-container.c
ges/ges-group.c
ges/ges-pitivi-formatter.c
plugins/ges/gesdemux.c
tests/check/ges/clip.c

index 908e19968119cb0ca029186e75c2744513046257..7b7338bd89674f9289171ac5c1936dc75a0e3f43 100644 (file)
@@ -480,7 +480,11 @@ _add_all_groups (GESFormatter * self)
       GST_DEBUG_OBJECT (tmp->data, "Adding %s child %" GST_PTR_FORMAT " %s",
           (const gchar *) lchild->data, child,
           GES_TIMELINE_ELEMENT_NAME (child));
-      ges_container_add (GES_CONTAINER (pgroup->group), child);
+      if (!ges_container_add (GES_CONTAINER (pgroup->group), child)) {
+        GST_ERROR ("%" GES_FORMAT " could not add child %p while"
+            " reloading, this should never happen", GES_ARGS (pgroup->group),
+            child);
+      }
     }
     pgroup->group = NULL;
   }
@@ -624,7 +628,10 @@ _add_track_element (GESFormatter * self, GESClip * clip,
   GST_DEBUG_OBJECT (self, "Adding track_element: %" GST_PTR_FORMAT
       " To : %" GST_PTR_FORMAT, trackelement, clip);
 
-  ges_container_add (GES_CONTAINER (clip), GES_TIMELINE_ELEMENT (trackelement));
+  if (!ges_container_add (GES_CONTAINER (clip),
+          GES_TIMELINE_ELEMENT (trackelement)))
+    GST_ERROR ("%" GES_FORMAT " could not add child %p while"
+        " reloading, this should never happen", GES_ARGS (clip), trackelement);
   gst_structure_foreach (children_properties,
       (GstStructureForeachFunc) _set_child_property, trackelement);
 
index 4d8fcbb9ab586b3825a9576a173a4b347312722f..a97286e389932784af0358d3c0ca61b2d552a969 100644 (file)
@@ -872,7 +872,10 @@ _transfer_child (GESClip * from_clip, GESClip * to_clip,
       GES_TIMELINE_ELEMENT (child));
 
   to_clip->priv->allow_any_track = TRUE;
-  ges_container_add (GES_CONTAINER (to_clip), GES_TIMELINE_ELEMENT (child));
+  if (!ges_container_add (GES_CONTAINER (to_clip),
+          GES_TIMELINE_ELEMENT (child)))
+    GST_ERROR ("%" GES_FORMAT " could not add child %p while"
+        " transfering, this should never happen", GES_ARGS (to_clip), child);
   to_clip->priv->allow_any_track = FALSE;
   ges_timeline_set_moving_track_elements (timeline, FALSE);
 
index 3017e7ec2f75de22811e5a85c7e96954ccee55a2..20b5536b429d10246c321fba4e7ba47b505d08ef 100644 (file)
@@ -383,7 +383,9 @@ _paste (GESTimelineElement * element, GESTimelineElement * ref,
     }
 
     /* for GESGroups, this may register the group on the timeline */
-    ges_container_add (ncontainer, nchild);
+    if (!ges_container_add (ncontainer, nchild))
+      GST_ERROR ("%" GES_FORMAT " could not add child %p while"
+          " copying, this should never happen", GES_ARGS (ncontainer), nchild);
   }
 
   return GES_TIMELINE_ELEMENT (ncontainer);
index b99ba7c7db951dfcab747f9f93c9f0aec10d86dc..d706b4a54bbe2370fc67952f0def906b345b2951 100644 (file)
@@ -677,7 +677,13 @@ _group (GList * containers)
       return NULL;
     }
 
-    ges_container_add (ret, tmp->data);
+    if (!ges_container_add (ret, tmp->data)) {
+      GST_INFO ("%" GES_FORMAT " could not add child %p while"
+          " grouping", GES_ARGS (ret), tmp->data);
+      g_object_unref (ret);
+
+      return NULL;
+    }
   }
 
   /* No need to add to the timeline here, this will be done in _child_added */
index 9cd87b010dc488a0ab88631d40ddd3052a272c17..0e41f7a1a1228167b93bd202b1d8797a16656805 100644 (file)
@@ -541,7 +541,10 @@ make_source (GESFormatter * self, GList * reflist, GHashTable * source_table)
       effect_table =
           g_hash_table_lookup (props_table, (gchar *) "effect_props");
 
-      ges_container_add (GES_CONTAINER (src), GES_TIMELINE_ELEMENT (effect));
+      if (!ges_container_add (GES_CONTAINER (src),
+              GES_TIMELINE_ELEMENT (effect)))
+        GST_ERROR ("%" GES_FORMAT " could not add %p while"
+            " reloading, this should never happen", GES_ARGS (src), effect);
 
       if (!g_strcmp0 (active, (gchar *) "(bool)False"))
         ges_track_element_set_active (GES_TRACK_ELEMENT (effect), FALSE);
index 29afb113a4869cebcdb2233b1428f6deee4e75b0..ef2d862ab7241f0b05def77540ea94212c2f9bcc 100644 (file)
@@ -364,8 +364,10 @@ ges_demux_adapt_timeline_duration (GESDemux * self, GESTimeline * timeline)
               text = ges_effect_new (effect_str);
               g_free (effect_str_full);
 
-              ges_container_add (GES_CONTAINER (clip),
-                  GES_TIMELINE_ELEMENT (text));
+              if (!ges_container_add (GES_CONTAINER (clip),
+                      GES_TIMELINE_ELEMENT (text))) {
+                GST_ERROR ("Could not add text overlay to ending clip!");
+              }
             }
 
           }
index f9a0a692fca2c254b4c099095fe940b2cbc65ede..2c26ea58e90185cf18172d0be9f1624c90acd5a8 100644 (file)
@@ -1712,7 +1712,7 @@ GST_START_TEST (test_children_time_setters)
     ges_track_element_set_has_internal_source (child, TRUE);
     _test_children_time_setting_on_clip (clip, child);
     /* clip in a group */
-    ges_container_add (group, GES_TIMELINE_ELEMENT (clip));
+    fail_unless (ges_container_add (group, GES_TIMELINE_ELEMENT (clip)));
     _test_children_time_setting_on_clip (clip, child);
     /* group is removed from the timeline and destroyed when empty */
     ges_container_remove (group, GES_TIMELINE_ELEMENT (clip));