]> git.sesse.net Git - kdenlive/commitdiff
Fix possible crash when moving invalid clip:
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 1 Oct 2009 11:48:21 +0000 (11:48 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 1 Oct 2009 11:48:21 +0000 (11:48 +0000)
http://kdenlive.org/mantis/view.php?id=1169

svn path=/trunk/kdenlive/; revision=3970

src/renderer.cpp

index 904e94308da12ff2ba10d66c7eb64315d88f5abb..8a5289d51a52ce0a15494c98428d45988a050afa 100644 (file)
@@ -2768,10 +2768,10 @@ bool Render::mltMoveClip(int startTrack, int endTrack, int moveStart, int moveEn
     bool checkLength = false;
     if (endTrack == startTrack) {
         Mlt::Producer *clipProducer = trackPlaylist.replace_with_blank(clipIndex);
-        if (!trackPlaylist.is_blank_at(moveEnd) || clipProducer->is_blank()) {
+        if (!trackPlaylist.is_blank_at(moveEnd) || !clipProducer || clipProducer->is_blank()) {
             // error, destination is not empty
             if (!trackPlaylist.is_blank_at(moveEnd)) trackPlaylist.insert_at(moveStart, clipProducer, 1);
-            delete clipProducer;
+            if (clipProducer) delete clipProducer;
             //int ix = trackPlaylist.get_clip_index_at(moveEnd);
             kDebug() << "// ERROR MOVING CLIP TO : " << moveEnd;
             mlt_service_unlock(service.get_service());
@@ -2797,10 +2797,10 @@ bool Render::mltMoveClip(int startTrack, int endTrack, int moveStart, int moveEn
             return false;
         } else {
             Mlt::Producer *clipProducer = trackPlaylist.replace_with_blank(clipIndex);
-            if (clipProducer->is_blank()) {
+            if (!clipProducer || clipProducer->is_blank()) {
                 // error, destination is not empty
                 //int ix = trackPlaylist.get_clip_index_at(moveEnd);
-                delete clipProducer;
+                if (clipProducer) delete clipProducer;
                 kDebug() << "// ERROR MOVING CLIP TO : " << moveEnd;
                 mlt_service_unlock(service.get_service());
                 m_isBlocked--;