diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2014-07-14 17:32:57 +0200 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2014-11-08 23:21:21 +0100 |
commit | bbc738c490bcd691151c28f971e0e153777fb255 (patch) | |
tree | 81d6c3dbca12021fc8dd9563462c19836f5591a6 /src/Common/Password.c | |
parent | 8bf58486af14c662ed63abea093886bfcf2ddbe5 (diff) | |
download | VeraCrypt-bbc738c490bcd691151c28f971e0e153777fb255.tar.gz VeraCrypt-bbc738c490bcd691151c28f971e0e153777fb255.zip |
Static Code Analysis : Add various NULL pointers checks
Diffstat (limited to 'src/Common/Password.c')
-rw-r--r-- | src/Common/Password.c | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/src/Common/Password.c b/src/Common/Password.c index 506a18c5..ca86f9c4 100644 --- a/src/Common/Password.c +++ b/src/Common/Password.c | |||
@@ -66,15 +66,20 @@ BOOL CheckPasswordCharEncoding (HWND hPassword, Password *ptrPw) | |||
66 | 66 | ||
67 | if (hPassword == NULL) | 67 | if (hPassword == NULL) |
68 | { | 68 | { |
69 | unsigned char *pw; | 69 | if (ptrPw) |
70 | len = ptrPw->Length; | ||
71 | pw = (unsigned char *) ptrPw->Text; | ||
72 | |||
73 | for (i = 0; i < len; i++) | ||
74 | { | 70 | { |
75 | if (pw[i] >= 0x7f || pw[i] < 0x20) // A non-ASCII or non-printable character? | 71 | unsigned char *pw; |
76 | return FALSE; | 72 | len = ptrPw->Length; |
73 | pw = (unsigned char *) ptrPw->Text; | ||
74 | |||
75 | for (i = 0; i < len; i++) | ||
76 | { | ||
77 | if (pw[i] >= 0x7f || pw[i] < 0x20) // A non-ASCII or non-printable character? | ||
78 | return FALSE; | ||
79 | } | ||
77 | } | 80 | } |
81 | else | ||
82 | return FALSE; | ||
78 | } | 83 | } |
79 | else | 84 | else |
80 | { | 85 | { |
@@ -114,7 +119,7 @@ BOOL CheckPasswordLength (HWND hwndDlg, HWND hwndItem) | |||
114 | return TRUE; | 119 | return TRUE; |
115 | } | 120 | } |
116 | 121 | ||
117 | int ChangePwd (char *lpszVolume, Password *oldPassword, Password *newPassword, int pkcs5, HWND hwndDlg) | 122 | int ChangePwd (const char *lpszVolume, Password *oldPassword, Password *newPassword, int pkcs5, HWND hwndDlg) |
118 | { | 123 | { |
119 | int nDosLinkCreated = 1, nStatus = ERR_OS_ERROR; | 124 | int nDosLinkCreated = 1, nStatus = ERR_OS_ERROR; |
120 | char szDiskFile[TC_MAX_PATH], szCFDevice[TC_MAX_PATH]; | 125 | char szDiskFile[TC_MAX_PATH], szCFDevice[TC_MAX_PATH]; |
@@ -138,9 +143,16 @@ int ChangePwd (char *lpszVolume, Password *oldPassword, Password *newPassword, i | |||
138 | 143 | ||
139 | if (oldPassword->Length == 0 || newPassword->Length == 0) return -1; | 144 | if (oldPassword->Length == 0 || newPassword->Length == 0) return -1; |
140 | 145 | ||
146 | if (!lpszVolume) | ||
147 | { | ||
148 | nStatus = ERR_OUTOFMEMORY; | ||
149 | handleError (hwndDlg, nStatus); | ||
150 | return nStatus; | ||
151 | } | ||
152 | |||
141 | WaitCursor (); | 153 | WaitCursor (); |
142 | 154 | ||
143 | CreateFullVolumePath (szDiskFile, lpszVolume, &bDevice); | 155 | CreateFullVolumePath (szDiskFile, sizeof(szDiskFile), lpszVolume, &bDevice); |
144 | 156 | ||
145 | if (bDevice == FALSE) | 157 | if (bDevice == FALSE) |
146 | { | 158 | { |
@@ -148,7 +160,7 @@ int ChangePwd (char *lpszVolume, Password *oldPassword, Password *newPassword, i | |||
148 | } | 160 | } |
149 | else | 161 | else |
150 | { | 162 | { |
151 | nDosLinkCreated = FakeDosNameForDevice (szDiskFile, szDosDevice, szCFDevice, FALSE); | 163 | nDosLinkCreated = FakeDosNameForDevice (szDiskFile, szDosDevice, sizeof(szDosDevice), szCFDevice, sizeof(szCFDevice),FALSE); |
152 | 164 | ||
153 | if (nDosLinkCreated != 0) | 165 | if (nDosLinkCreated != 0) |
154 | goto error; | 166 | goto error; |