From dd5f124c60dffe6e637ed7840e501fdfc73884aa Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 8 Apr 2018 02:05:16 +0200 Subject: Fix crash when testing unsupported MIDI file smf_delete() does not handle NULL, and segfaults instead. This only crashes with optimized builds. libsmf will call g_critical() earlier and in that case debug-builds call UI::handle_fatal() and ask the user to "click to exit". --- libs/evoral/src/SMF.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/evoral/src/SMF.cpp b/libs/evoral/src/SMF.cpp index 60d69c8a4d..b4fa4a16c8 100644 --- a/libs/evoral/src/SMF.cpp +++ b/libs/evoral/src/SMF.cpp @@ -97,10 +97,11 @@ SMF::test(const std::string& path) smf_t* test_smf = smf_load(f); fclose(f); - const bool success = (test_smf != NULL); + if (!test_smf) { + return false; + } smf_delete(test_smf); - - return success; + return true; } /** Attempt to open the SMF file for reading and/or writing. -- cgit v1.2.3