Bug 404046

Summary: getTracksInfo() tries to read past end of tracks list
Product: [Applications] kdenlive Reporter: Mazin07 <mazin07+kde>
Component: User InterfaceAssignee: Jean-Baptiste Mardelle <jb>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version: 18.12.1   
Target Milestone: ---   
Platform: Appimage   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: kdenlive project file that causes kdenlive to crash

Description Mazin07 2019-02-06 23:56:48 UTC
Created attachment 117905 [details]
kdenlive project file that causes kdenlive to crash

SUMMARY

When opening a certain .kdenlive project file, kdenlive crashes in getTracksInfo() when it tries to get a track for an index that doesn't exist. Seems to be a mismatch between tracksCount() and the actual number of elements in m_tracks.

The project file was created by kdenlive 17.12.3 but crash exhibits on 17.12.3 and 18.*. Could be bugginess in kdenlive internal data model that produces bad project file.

STEPS TO REPRODUCE
1. Open attached kdenlive project file.
2. Observe SIGSEGV in Mlt::Properties::get()

OBSERVED RESULT

Backtrace sample:

#0  0x00007ffff6dcfef0 in Mlt::Properties::get(char const*) () at /usr/lib/x86_64-linux-gnu/libmlt++.so.3
#1  0x0000555555744dda in Track::info() (this=0x0) at ./src/timeline/track.cpp:604
#2  0x0000555555735760 in Timeline::getTracksInfo() (this=0x55555917daa0) at ./src/timeline/timeline.cpp:710
#3  0x00005555556aad0e in TransitionSettings::updateProjectFormat() (this=0x5555587c81f0) at ./src/project/transitionsettings.cpp:131
#4  0x00005555559bfec2 in MainWindow::connectDocument() (this=0x555555ec0d40) at ./src/mainwindow.cpp:1951


EXPECTED RESULT

The file should load properly or, if it is corrupted, an error should be printed saying what went wrong and the application should exit gracefully.
Comment 1 Mazin07 2019-02-07 19:57:01 UTC

*** This bug has been marked as a duplicate of bug 400660 ***