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

Windows: Solve privacy issue inherited from TrueCrypt and linked to the update of configuration and history XML files everytime VeraCrypt main window is opened, even if there was no modifications. This could give information about the usage of VeraCrypt. Now, configuration and history XML files are updated only when there are modifications.

This commit is contained in:
Mounir IDRASSI
2015-07-03 02:02:17 +02:00
parent bef713de1a
commit b4b51bd909
4 changed files with 338 additions and 161 deletions

View File

@@ -133,23 +133,64 @@ LPARAM UpdateComboOrder (HWND hComboBox)
return nIndex;
}
void LoadCombo (HWND hComboBox)
void LoadCombo (HWND hComboBox, BOOL bEnabled, BOOL bOnlyCheckModified, BOOL *pbModified)
{
DWORD size;
char *history = LoadFile (GetConfigPath (TC_APPD_FILENAME_HISTORY), &size);
char *xml = history;
char volume[MAX_PATH];
int i, nComboIdx[SIZEOF_MRU_LIST] = {0};
int count = SendMessage (hComboBox, CB_GETCOUNT, 0, 0);
if (xml == NULL) return;
while (xml = XmlFindElement (xml, "volume"))
if (xml == NULL)
{
XmlGetNodeText (xml, volume, sizeof (volume));
AddComboItem (hComboBox, volume, TRUE);
xml++;
// No history XML file but history is enabled
if (bEnabled && pbModified)
*pbModified = TRUE;
return;
}
SendMessage (hComboBox, CB_SETCURSEL, 0, 0);
if (!bEnabled && bOnlyCheckModified)
{
// History is disable but there is a history XML file
if (pbModified)
*pbModified = TRUE;
free (history);
return;
}
/* combo list part:- get mru items */
for (i = 0; i < SIZEOF_MRU_LIST; i++)
nComboIdx[i] = GetOrderComboIdx (hComboBox, &nComboIdx[0], i);
i = 0;
while (xml = XmlFindElement (xml, "volume"))
{
char szTmp[MAX_PATH] = { 0 };
if (i < count)
{
if (SendMessage (hComboBox, CB_GETLBTEXTLEN, nComboIdx[i], 0) < sizeof (szTmp))
SendMessage (hComboBox, CB_GETLBTEXT, nComboIdx[i], (LPARAM) & szTmp[0]);
}
XmlGetNodeText (xml, volume, sizeof (volume));
if (!bOnlyCheckModified)
AddComboItem (hComboBox, volume, TRUE);
if (pbModified && strcmp (volume, szTmp))
*pbModified = TRUE;
xml++;
i++;
}
if (pbModified && (i != count))
*pbModified = TRUE;
if (!bOnlyCheckModified)
SendMessage (hComboBox, CB_SETCURSEL, 0, 0);
free (history);
}