From: Mikko Rapeli Date: Fri, 10 Aug 2012 12:17:15 +0000 (+0200) Subject: renderer.cpp: check for null pointers X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=a4416e854b8c628c20a74bbaf729fa681fd5af25;p=kdenlive renderer.cpp: check for null pointers 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; --- diff --git a/src/renderer.cpp b/src/renderer.cpp index 572b035d..26d64fe5 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -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;