]> git.sesse.net Git - kdenlive/commitdiff
renderer.cpp: check for null pointers
authorMikko Rapeli <mikko.rapeli@iki.fi>
Fri, 10 Aug 2012 12:17:15 +0000 (14:17 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 2 Sep 2012 09:40:50 +0000 (11:40 +0200)
Fixes Coverity CID 709292 and 709293:
Dereference after null check (FORWARD_NULL) [select defect]
1917    if (original == NULL || clip == NULL) {
1918        kDebug() << "// ERROR GRABBING CLIP AFTER SPLIT";
1919    }
1920    Mlt::Service clipService(original->get_service());
1921    Mlt::Service dupService(clip->get_service());
1922    delete original;
1923    delete clip;

src/renderer.cpp

index 572b035d9af0391c314d61b924a6fa9140dbd576..26d64fe5ecfe6dce3e1b6451f0d67afbe77f17d4 100644 (file)
@@ -1925,11 +1925,21 @@ void Render::mltCutClip(int track, GenTime position)
     Mlt::Producer *original = trackPlaylist.get_clip_at(clipStart);
     Mlt::Producer *clip = trackPlaylist.get_clip_at(cutPos);
 
-    if (original == NULL || clip == NULL) {
+    Mlt::Service clipService;
+    Mlt::Service dupService;
+    if (original)
+        clipService = Mlt::Service(original->get_service());
+    else
+        clipService = Mlt::Service();
+
+    if (clip)
+        dupService = Mlt::Service(clip->get_service());
+    else
+        dupService = Mlt::Service();
+
+    if (original == NULL || clip == NULL)
         kDebug() << "// ERROR GRABBING CLIP AFTER SPLIT";
-    }
-    Mlt::Service clipService(original->get_service());
-    Mlt::Service dupService(clip->get_service());
+
     delete original;
     delete clip;
     int ct = 0;