OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome_elf/blacklist/blacklist.h" | 5 #include "chrome_elf/blacklist/blacklist.h" |
6 | 6 |
7 #include <assert.h> | 7 #include <assert.h> |
8 #include <string.h> | 8 #include <string.h> |
9 | 9 |
10 #include <vector> | 10 #include <vector> |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 DWORD blacklist_state = BLACKLIST_STATE_MAX; | 151 DWORD blacklist_state = BLACKLIST_STATE_MAX; |
152 DWORD blacklist_state_size = sizeof(blacklist_state); | 152 DWORD blacklist_state_size = sizeof(blacklist_state); |
153 DWORD type = 0; | 153 DWORD type = 0; |
154 result = ::RegQueryValueEx(key, | 154 result = ::RegQueryValueEx(key, |
155 kBeaconState, | 155 kBeaconState, |
156 0, | 156 0, |
157 &type, | 157 &type, |
158 reinterpret_cast<LPBYTE>(&blacklist_state), | 158 reinterpret_cast<LPBYTE>(&blacklist_state), |
159 &blacklist_state_size); | 159 &blacklist_state_size); |
160 | 160 |
161 if (blacklist_state == BLACKLIST_DISABLED || result != ERROR_SUCCESS || | 161 if (result != ERROR_SUCCESS || blacklist_state == BLACKLIST_DISABLED || |
162 type != REG_DWORD) { | 162 type != REG_DWORD) { |
163 ::RegCloseKey(key); | 163 ::RegCloseKey(key); |
164 return false; | 164 return false; |
165 } | 165 } |
166 | 166 |
167 if (!GenerateStateFromBeaconAndAttemptCount(&key, blacklist_state)) { | 167 if (!GenerateStateFromBeaconAndAttemptCount(&key, blacklist_state)) { |
168 ::RegCloseKey(key); | 168 ::RegCloseKey(key); |
169 return false; | 169 return false; |
170 } | 170 } |
171 | 171 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 while (blacklist::g_troublesome_dlls[++size] != NULL) {} | 220 while (blacklist::g_troublesome_dlls[++size] != NULL) {} |
221 | 221 |
222 return size; | 222 return size; |
223 } | 223 } |
224 | 224 |
225 bool IsBlacklistInitialized() { | 225 bool IsBlacklistInitialized() { |
226 return g_blacklist_initialized; | 226 return g_blacklist_initialized; |
227 } | 227 } |
228 | 228 |
229 int GetBlacklistIndex(const wchar_t* dll_name) { | 229 int GetBlacklistIndex(const wchar_t* dll_name) { |
230 for (int i = 0; i < kTroublesomeDllsMaxCount, g_troublesome_dlls[i]; ++i) { | 230 for (int i = 0; i < kTroublesomeDllsMaxCount && g_troublesome_dlls[i]; ++i) { |
231 if (_wcsicmp(dll_name, g_troublesome_dlls[i]) == 0) | 231 if (_wcsicmp(dll_name, g_troublesome_dlls[i]) == 0) |
232 return i; | 232 return i; |
233 } | 233 } |
234 return -1; | 234 return -1; |
235 } | 235 } |
236 | 236 |
237 bool AddDllToBlacklist(const wchar_t* dll_name) { | 237 bool AddDllToBlacklist(const wchar_t* dll_name) { |
238 int blacklist_size = BlacklistSize(); | 238 int blacklist_size = BlacklistSize(); |
239 // We need to leave one space at the end for the null pointer. | 239 // We need to leave one space at the end for the null pointer. |
240 if (blacklist_size + 1 >= kTroublesomeDllsMaxCount) | 240 if (blacklist_size + 1 >= kTroublesomeDllsMaxCount) |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 break; | 431 break; |
432 value_buffer[value_len - 1] = L'\0'; | 432 value_buffer[value_len - 1] = L'\0'; |
433 AddDllToBlacklist(&value_buffer[0]); | 433 AddDllToBlacklist(&value_buffer[0]); |
434 } | 434 } |
435 | 435 |
436 ::RegCloseKey(key); | 436 ::RegCloseKey(key); |
437 return; | 437 return; |
438 } | 438 } |
439 | 439 |
440 } // namespace blacklist | 440 } // namespace blacklist |
OLD | NEW |