diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-15 23:41:54 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-15 23:41:54 +0000 |
commit | 1f4784e246056d268b486940bb679a8de2dcbd3d (patch) | |
tree | 54c0227d4263d53b30258f27b4a0b6eee98c8851 | |
parent | eb58e8f7b71240707e1f277a446985eaebc450f7 (diff) | |
download | chromium_src-1f4784e246056d268b486940bb679a8de2dcbd3d.zip chromium_src-1f4784e246056d268b486940bb679a8de2dcbd3d.tar.gz chromium_src-1f4784e246056d268b486940bb679a8de2dcbd3d.tar.bz2 |
Use base::wcslcpy rather than wcscpy_s throughout breakpad_win.cc
The difference is that base::wcslcpy will gracefully handle inputs which are larger than the buffer (by truncating), whereas wcscpy_s will abort the program. It is not desirable to crash the program because one of the metadata strings was larger than expected.
Review URL: http://codereview.chromium.org/7891034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101414 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/app/breakpad_win.cc | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/chrome/app/breakpad_win.cc b/chrome/app/breakpad_win.cc index 63014d5..dd1325a 100644 --- a/chrome/app/breakpad_win.cc +++ b/chrome/app/breakpad_win.cc @@ -99,9 +99,9 @@ static void SetIntegerValue(size_t offset, int value) { if (!g_custom_entries) return; - wcscpy_s((*g_custom_entries)[offset].value, - google_breakpad::CustomInfoEntry::kValueMaxLength, - base::StringPrintf(L"%d", value).c_str()); + base::wcslcpy((*g_custom_entries)[offset].value, + base::StringPrintf(L"%d", value).c_str(), + google_breakpad::CustomInfoEntry::kValueMaxLength); } extern "C" void __declspec(dllexport) __cdecl SetCommandLine( @@ -120,9 +120,9 @@ extern "C" void __declspec(dllexport) __cdecl SetCommandLine( ++argv_i, ++num_added) { // TODO(eroman): Filter out flags which aren't useful and just add bloat // to the report. - wcsncpy((*g_custom_entries)[g_switches_offset + num_added].value, - argv[argv_i].c_str(), - google_breakpad::CustomInfoEntry::kValueMaxLength); + base::wcslcpy((*g_custom_entries)[g_switches_offset + num_added].value, + argv[argv_i].c_str(), + google_breakpad::CustomInfoEntry::kValueMaxLength); } // Make note of the total number of switches. This is useful in case we have @@ -371,9 +371,9 @@ extern "C" void __declspec(dllexport) __cdecl SetClientId( if (!g_custom_entries) return; - wcscpy_s((*g_custom_entries)[g_client_id_offset].value, - google_breakpad::CustomInfoEntry::kValueMaxLength, - client_id); + base::wcslcpy((*g_custom_entries)[g_client_id_offset].value, + client_id, + google_breakpad::CustomInfoEntry::kValueMaxLength); } extern "C" void __declspec(dllexport) __cdecl SetNumberOfExtensions( @@ -389,9 +389,9 @@ extern "C" void __declspec(dllexport) __cdecl SetExtensionID( if (!g_custom_entries) return; - wcscpy_s((*g_custom_entries)[g_extension_ids_offset + index].value, - google_breakpad::CustomInfoEntry::kValueMaxLength, - id); + base::wcslcpy((*g_custom_entries)[g_extension_ids_offset + index].value, + id, + google_breakpad::CustomInfoEntry::kValueMaxLength); } extern "C" void __declspec(dllexport) __cdecl SetGpuInfo( @@ -401,21 +401,21 @@ extern "C" void __declspec(dllexport) __cdecl SetGpuInfo( if (!g_custom_entries) return; - wcscpy_s((*g_custom_entries)[g_gpu_info_offset].value, - google_breakpad::CustomInfoEntry::kValueMaxLength, - vendor_id); - wcscpy_s((*g_custom_entries)[g_gpu_info_offset+1].value, - google_breakpad::CustomInfoEntry::kValueMaxLength, - device_id); - wcscpy_s((*g_custom_entries)[g_gpu_info_offset+2].value, - google_breakpad::CustomInfoEntry::kValueMaxLength, - driver_version); - wcscpy_s((*g_custom_entries)[g_gpu_info_offset+3].value, - google_breakpad::CustomInfoEntry::kValueMaxLength, - pixel_shader_version); - wcscpy_s((*g_custom_entries)[g_gpu_info_offset+4].value, - google_breakpad::CustomInfoEntry::kValueMaxLength, - vertex_shader_version); + base::wcslcpy((*g_custom_entries)[g_gpu_info_offset].value, + vendor_id, + google_breakpad::CustomInfoEntry::kValueMaxLength); + base::wcslcpy((*g_custom_entries)[g_gpu_info_offset+1].value, + device_id, + google_breakpad::CustomInfoEntry::kValueMaxLength); + base::wcslcpy((*g_custom_entries)[g_gpu_info_offset+2].value, + driver_version, + google_breakpad::CustomInfoEntry::kValueMaxLength); + base::wcslcpy((*g_custom_entries)[g_gpu_info_offset+3].value, + pixel_shader_version, + google_breakpad::CustomInfoEntry::kValueMaxLength); + base::wcslcpy((*g_custom_entries)[g_gpu_info_offset+4].value, + vertex_shader_version, + google_breakpad::CustomInfoEntry::kValueMaxLength); } extern "C" void __declspec(dllexport) __cdecl SetNumberOfViews( |