libmedia: Fix leaks of dirs from find_paths in AddOnManager.
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <Architecture.h>
|
#include <Architecture.h>
|
||||||
|
#include <AutoDeleter.h>
|
||||||
#include <Autolock.h>
|
#include <Autolock.h>
|
||||||
#include <Directory.h>
|
#include <Directory.h>
|
||||||
#include <Entry.h>
|
#include <Entry.h>
|
||||||
@@ -112,6 +113,8 @@ AddOnManager::GetDecoderForFormat(entry_ref* _decoderRef,
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MemoryDeleter directoriesDeleter(directories);
|
||||||
|
|
||||||
BPath path;
|
BPath path;
|
||||||
for (uint i = 0; i < directoryCount; i++) {
|
for (uint i = 0; i < directoryCount; i++) {
|
||||||
path.SetTo(directories[i]);
|
path.SetTo(directories[i]);
|
||||||
@@ -144,6 +147,8 @@ AddOnManager::GetReaders(entry_ref* outRefs, int32* outCount,
|
|||||||
return B_ENTRY_NOT_FOUND;
|
return B_ENTRY_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MemoryDeleter directoriesDeleter(directories);
|
||||||
|
|
||||||
BPath path;
|
BPath path;
|
||||||
for (uint i = 0; i < directoryCount; i++) {
|
for (uint i = 0; i < directoryCount; i++) {
|
||||||
path.SetTo(directories[i]);
|
path.SetTo(directories[i]);
|
||||||
@@ -249,6 +254,8 @@ AddOnManager::RegisterAddOns()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MemoryDeleter directoriesDeleter(directories);
|
||||||
|
|
||||||
BPath path;
|
BPath path;
|
||||||
for (uint i = 0; i < directoryCount; i++) {
|
for (uint i = 0; i < directoryCount; i++) {
|
||||||
BDirectory directory;
|
BDirectory directory;
|
||||||
|
|||||||
Reference in New Issue
Block a user