From de0c30dded45ea9956a2e7b241ce16641b30492f Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Sun, 8 Feb 2015 23:36:01 +0100 Subject: Static Code Analysis: handle unused variables more properly. Catch STL exception. Add more checks. Add proper cast to arithmetic operations. --- src/Common/Cmdline.c | 4 ++-- src/Common/Combo.c | 2 +- src/Common/Dictionary.c | 12 ++++++++---- src/Common/Fat.c | 9 +++++---- src/Common/Fat.h | 2 +- src/Common/Format.h | 2 +- src/Common/Language.c | 5 +++-- src/Common/Password.c | 2 +- src/Common/Random.c | 2 +- src/ExpandVolume/WinMain.cpp | 1 - 10 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/Common/Cmdline.c b/src/Common/Cmdline.c index f1f9a8fc..a455b982 100644 --- a/src/Common/Cmdline.c +++ b/src/Common/Cmdline.c @@ -27,8 +27,8 @@ not. - see DialogProc */ BOOL CALLBACK CommandHelpDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - if (lParam); /* remove warning */ - if (wParam); /* remove warning */ + UNREFERENCED_PARAMETER (lParam); /* remove warning */ + UNREFERENCED_PARAMETER (wParam); /* remove warning */ switch (msg) { diff --git a/src/Common/Combo.c b/src/Common/Combo.c index 850cd020..cc1d5bbf 100644 --- a/src/Common/Combo.c +++ b/src/Common/Combo.c @@ -157,7 +157,7 @@ void LoadCombo (HWND hComboBox) void DumpCombo (HWND hComboBox, int bClear) { FILE *f; - int i, nComboIdx[SIZEOF_MRU_LIST]; + int i, nComboIdx[SIZEOF_MRU_LIST] = {0}; if (bClear) { diff --git a/src/Common/Dictionary.c b/src/Common/Dictionary.c index 382e6b70..d6203e6b 100644 --- a/src/Common/Dictionary.c +++ b/src/Common/Dictionary.c @@ -22,11 +22,15 @@ static size_t DataPoolSize = 0; void AddDictionaryEntry (char *key, int intKey, void *value) { - if (key) - StringKeyMap[key] = value; + try + { + if (key) + StringKeyMap[key] = value; - if (intKey != 0) - IntKeyMap[intKey] = value; + if (intKey != 0) + IntKeyMap[intKey] = value; + } + catch (exception&) {} } diff --git a/src/Common/Fat.c b/src/Common/Fat.c index b6138528..2adafd78 100644 --- a/src/Common/Fat.c +++ b/src/Common/Fat.c @@ -60,7 +60,7 @@ GetFatParams (fatparams * ft) if (ft->cluster_size == 0) ft->cluster_size = 1; - if (ft->cluster_size * ft->sector_size > TC_MAX_FAT_CLUSTER_SIZE) + if (((unsigned __int64) ft->cluster_size * ft->sector_size) > TC_MAX_FAT_CLUSTER_SIZE) ft->cluster_size = TC_MAX_FAT_CLUSTER_SIZE / ft->sector_size; if (ft->cluster_size > 128) @@ -85,7 +85,7 @@ GetFatParams (fatparams * ft) ft->size_fat = 12; ft->reserved = 2; fatsecs = ft->num_sectors - (ft->size_root_dir + ft->sector_size - 1) / ft->sector_size - ft->reserved; - ft->cluster_count = (int) (((__int64) fatsecs * ft->sector_size) / (ft->cluster_size * ft->sector_size)); + ft->cluster_count = (int) (((unsigned __int64) fatsecs * ft->sector_size) / ((unsigned __int64) ft->cluster_size * ft->sector_size)); ft->fat_length = (((ft->cluster_count * 3 + 1) >> 1) + ft->sector_size - 1) / ft->sector_size; if (ft->cluster_count >= 4085) // FAT16 @@ -108,7 +108,7 @@ GetFatParams (fatparams * ft) fatsecs = ft->num_sectors - ft->reserved; ft->size_root_dir = ft->cluster_size * ft->sector_size; - ft->cluster_count = (int) (((__int64) fatsecs * ft->sector_size) / (ft->cluster_size * ft->sector_size)); + ft->cluster_count = (int) (((unsigned __int64) fatsecs * ft->sector_size) / (ft->cluster_size * ft->sector_size)); ft->fat_length = (ft->cluster_count * 4 + ft->sector_size - 1) / ft->sector_size; // Align data area on TC_MAX_VOLUME_SECTOR_SIZE @@ -282,7 +282,8 @@ FormatFat (void* hwndDlgPtr, unsigned __int64 startSector, fatparams * ft, void memset (sector, 0, ft->sector_size); - RandgetBytes (hwndDlg, ft->volume_id, sizeof (ft->volume_id), FALSE); + if (!RandgetBytes (hwndDlg, ft->volume_id, sizeof (ft->volume_id), FALSE)) + goto fail; PutBoot (ft, (unsigned char *) sector); if (WriteSector (dev, sector, write_buf, &write_buf_cnt, &nSecNo, diff --git a/src/Common/Fat.h b/src/Common/Fat.h index 59c993b3..cbb7e0d4 100644 --- a/src/Common/Fat.h +++ b/src/Common/Fat.h @@ -19,7 +19,7 @@ typedef struct fatparams_t int size_fat; /* size of FAT */ int fats; int media; - int cluster_size; + unsigned int cluster_size; int fat_length; uint16 dir_entries; uint16 sector_size; diff --git a/src/Common/Format.h b/src/Common/Format.h index 3422fecf..584d98d9 100644 --- a/src/Common/Format.h +++ b/src/Common/Format.h @@ -33,7 +33,7 @@ typedef struct int pkcs5; uint32 headerFlags; int fileSystem; - int clusterSize; + unsigned int clusterSize; BOOL sparseFileSwitch; BOOL quickFormat; int sectorSize; diff --git a/src/Common/Language.c b/src/Common/Language.c index 3ec95dba..7853d18c 100644 --- a/src/Common/Language.c +++ b/src/Common/Language.c @@ -64,6 +64,7 @@ static char *MapNextLanguageFile () WIN32_FIND_DATAW find; HANDLE file; DWORD read; + BOOL bStatus; if (LanguageFileFindHandle == INVALID_HANDLE_VALUE) { @@ -107,9 +108,9 @@ static char *MapNextLanguageFile () return NULL; } - ReadFile (file, LanguageFileBuffer, find.nFileSizeLow, &read, NULL); + bStatus = ReadFile (file, LanguageFileBuffer, find.nFileSizeLow, &read, NULL); CloseHandle (file); - if (read != find.nFileSizeLow) + if (!bStatus || (read != find.nFileSizeLow)) { free(LanguageFileBuffer); return NULL; diff --git a/src/Common/Password.c b/src/Common/Password.c index f8fd3c1c..b1584dbe 100644 --- a/src/Common/Password.c +++ b/src/Common/Password.c @@ -32,7 +32,7 @@ void VerifyPasswordAndUpdate (HWND hwndDlg, HWND hButton, HWND hPassword, int k = GetWindowTextLength (hPassword); BOOL bEnable = FALSE; - if (hwndDlg); /* Remove warning */ + UNREFERENCED_PARAMETER (hwndDlg); /* Remove warning */ GetWindowText (hPassword, szTmp1, sizeof (szTmp1)); GetWindowText (hVerify, szTmp2, sizeof (szTmp2)); diff --git a/src/Common/Random.c b/src/Common/Random.c index cd85957f..e8433c27 100644 --- a/src/Common/Random.c +++ b/src/Common/Random.c @@ -534,7 +534,7 @@ LRESULT CALLBACK KeyboardProc (int nCode, WPARAM wParam, LPARAM lParam) /* This is the thread function which will poll the system for randomness */ static unsigned __stdcall PeriodicFastPollThreadProc (void *dummy) { - if (dummy); /* Remove unused parameter warning */ + UNREFERENCED_PARAMETER (dummy); /* Remove unused parameter warning */ for (;;) { diff --git a/src/ExpandVolume/WinMain.cpp b/src/ExpandVolume/WinMain.cpp index 7940b3d2..f107c98f 100644 --- a/src/ExpandVolume/WinMain.cpp +++ b/src/ExpandVolume/WinMain.cpp @@ -817,7 +817,6 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa { static UINT taskBarCreatedMsg; WORD lw = LOWORD (wParam); - WORD hw = HIWORD (wParam); switch (uMsg) { -- cgit v1.2.3