Browse Source

Fix double free when LinuxSampler fails to init

tags/1.9.4
falkTX 12 years ago
parent
commit
6255b74dff
1 changed files with 5 additions and 0 deletions
  1. +5
    -0
      source/backend/plugin/LinuxSamplerPlugin.cpp

+ 5
- 0
source/backend/plugin/LinuxSamplerPlugin.cpp View File

@@ -990,6 +990,7 @@ public:
{ {
kData->engine->setLastError("Failed to get LinuxSampler instrument manager"); kData->engine->setLastError("Failed to get LinuxSampler instrument manager");
LinuxSampler::EngineFactory::Destroy(fEngine); LinuxSampler::EngineFactory::Destroy(fEngine);
fEngine = nullptr;
return false; return false;
} }


@@ -1003,6 +1004,7 @@ public:
{ {
kData->engine->setLastError(e.what()); kData->engine->setLastError(e.what());
LinuxSampler::EngineFactory::Destroy(fEngine); LinuxSampler::EngineFactory::Destroy(fEngine);
fEngine = nullptr;
return false; return false;
} }


@@ -1013,6 +1015,7 @@ public:
{ {
kData->engine->setLastError("Failed to find any instruments"); kData->engine->setLastError("Failed to find any instruments");
LinuxSampler::EngineFactory::Destroy(fEngine); LinuxSampler::EngineFactory::Destroy(fEngine);
fEngine = nullptr;
return false; return false;
} }


@@ -1025,6 +1028,7 @@ public:
{ {
kData->engine->setLastError(e.what()); kData->engine->setLastError(e.what());
LinuxSampler::EngineFactory::Destroy(fEngine); LinuxSampler::EngineFactory::Destroy(fEngine);
fEngine = nullptr;
return false; return false;
} }


@@ -1047,6 +1051,7 @@ public:
{ {
kData->engine->setLastError("Failed to register plugin client"); kData->engine->setLastError("Failed to register plugin client");
LinuxSampler::EngineFactory::Destroy(fEngine); LinuxSampler::EngineFactory::Destroy(fEngine);
fEngine = nullptr;
return false; return false;
} }




Loading…
Cancel
Save