commit 59f737ad1b32fafb6f21edcaa4dd79c3444a880a
Author: Fabian Greffrath <fabian@greffrath.com>
AuthorDate: Mon Jan 28 09:34:12 2019 +0100
Commit: Fabian Greffrath <fabian@greffrath.com>
CommitDate: Mon Jan 28 09:34:12 2019 +0100
txt: free already loaded libraries on LoadLibraryW() failure
This fixes a future "Resource leak" cppcheck error.
---
textscreen/txt_fileselect.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/textscreen/txt_fileselect.c b/textscreen/txt_fileselect.c
index 21016b79..922791dc 100644
--- a/textscreen/txt_fileselect.c
+++ b/textscreen/txt_fileselect.c
@@ -175,14 +175,21 @@ static BOOL (*MySHGetPathFromIDList)(LPITEMIDLIST, LPTSTR) = NULL;
static int LoadDLLs(void)
{
- HMODULE comdlg32 = LoadLibraryW(L"comdlg32.dll");
- HMODULE shell32 = LoadLibraryW(L"shell32.dll");
+ HMODULE comdlg32, shell32
- if (comdlg32 == NULL || shell32 == NULL)
+ comdlg32 = LoadLibraryW(L"comdlg32.dll");
+ if (comdlg32 == NULL)
{
return 0;
}
+ shell32 = LoadLibraryW(L"shell32.dll");
+ if (shell32 == NULL)
+ {
+ FreeLibrary(comdlg32);
+ return 0;
+ }
+
MyGetOpenFileName =
(void *) GetProcAddress(comdlg32, "GetOpenFileNameA");
MySHBrowseForFolder =