1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 11:08:02 -06:00

Windows: check for malloc failures and report error in such cases.

This commit is contained in:
Mounir IDRASSI
2016-09-26 13:09:48 +02:00
parent b65eabe23d
commit 3c09765208

View File

@@ -519,6 +519,11 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
LoadKeyList (hwndDlg, param->FirstKeyFile); LoadKeyList (hwndDlg, param->FirstKeyFile);
kf = (KeyFile *) malloc (sizeof (KeyFile)); kf = (KeyFile *) malloc (sizeof (KeyFile));
if (!kf)
{
Warning ("ERR_MEM_ALLOC", hwndDlg);
break;
}
} }
} while (SelectMultipleFilesNext (kf->FileName, sizeof(kf->FileName))); } while (SelectMultipleFilesNext (kf->FileName, sizeof(kf->FileName)));
@@ -528,7 +533,8 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
} }
} }
free (kf); if (kf)
free (kf);
} }
return 1; return 1;
} }
@@ -536,16 +542,22 @@ BOOL CALLBACK KeyFilesDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa
if (lw == IDC_ADD_KEYFILE_PATH) if (lw == IDC_ADD_KEYFILE_PATH)
{ {
KeyFile *kf = (KeyFile *) malloc (sizeof (KeyFile)); KeyFile *kf = (KeyFile *) malloc (sizeof (KeyFile));
if (kf)
if (BrowseDirectories (hwndDlg,"SELECT_KEYFILE_PATH", kf->FileName)) {
{ if (BrowseDirectories (hwndDlg,"SELECT_KEYFILE_PATH", kf->FileName))
param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf); {
LoadKeyList (hwndDlg, param->FirstKeyFile); param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf);
} LoadKeyList (hwndDlg, param->FirstKeyFile);
else }
{ else
free (kf); {
} free (kf);
}
}
else
{
Warning ("ERR_MEM_ALLOC", hwndDlg);
}
return 1; return 1;
} }
@@ -716,13 +728,19 @@ BOOL KeyfilesPopupMenu (HWND hwndDlg, POINT popupPosition, KeyFilesDlgParam *par
{ {
param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf); param->FirstKeyFile = KeyFileAdd (param->FirstKeyFile, kf);
kf = (KeyFile *) malloc (sizeof (KeyFile)); kf = (KeyFile *) malloc (sizeof (KeyFile));
if (!kf)
{
Warning ("ERR_MEM_ALLOC", hwndDlg);
break;
}
} while (SelectMultipleFilesNext (kf->FileName, sizeof(kf->FileName))); } while (SelectMultipleFilesNext (kf->FileName, sizeof(kf->FileName)));
param->EnableKeyFiles = TRUE; param->EnableKeyFiles = TRUE;
status = TRUE; status = TRUE;
} }
free (kf); if (kf)
free (kf);
} }
} }
break; break;
@@ -743,6 +761,10 @@ BOOL KeyfilesPopupMenu (HWND hwndDlg, POINT popupPosition, KeyFilesDlgParam *par
free (kf); free (kf);
} }
} }
else
{
Warning ("ERR_MEM_ALLOC", hwndDlg);
}
} }
break; break;
@@ -762,6 +784,11 @@ BOOL KeyfilesPopupMenu (HWND hwndDlg, POINT popupPosition, KeyFilesDlgParam *par
param->EnableKeyFiles = TRUE; param->EnableKeyFiles = TRUE;
status = TRUE; status = TRUE;
} }
else
{
Warning ("ERR_MEM_ALLOC", hwndDlg);
break;
}
} }
} }
} }