From 7ab126ecdd5237ccd566f415cc560b39f87e8a0f Mon Sep 17 00:00:00 2001 From: doshimun Date: Thu, 8 May 2008 18:15:07 +0000 Subject: [PATCH] Replace the user of wcscpy_s with safe_wcscpy in common/windows/string_utils-inl.h to make the code compatible for teams that still use VS 2003 to build. Fix a bug in client ClientInfo class that returned CustomClientInfo struct containing a pointer in the client process address space instead of pointer to in-process data structure. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@271 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/client/windows/common/ipc_protocol.h | 6 ++++-- src/client/windows/crash_generation/client_info.cc | 7 +++++-- src/client/windows/crash_generation/client_info.h | 2 +- .../windows/crash_generation/crash_generation.vcproj | 4 ++++ .../tests/crash_generation_app/crash_generation_app.cc | 4 ++-- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/client/windows/common/ipc_protocol.h b/src/client/windows/common/ipc_protocol.h index e0a27a88..cba8699c 100644 --- a/src/client/windows/common/ipc_protocol.h +++ b/src/client/windows/common/ipc_protocol.h @@ -34,6 +34,7 @@ #include #include #include +#include "common/windows/string_utils-inl.h" #include "google_breakpad/common/minidump_format.h" namespace google_breakpad { @@ -60,7 +61,7 @@ struct CustomInfoEntry { name[0] = L'\0'; return; } - wcscpy_s(name, kNameMaxLength, name_arg); + WindowsStringUtils::safe_wcscpy(name, kNameMaxLength, name_arg); } void set_value(const wchar_t* value_arg) { @@ -68,7 +69,8 @@ struct CustomInfoEntry { value[0] = L'\0'; return; } - wcscpy_s(value, kValueMaxLength, value_arg); + + WindowsStringUtils::safe_wcscpy(value, kValueMaxLength, value_arg); } void set(const wchar_t* name_arg, const wchar_t* value_arg) { diff --git a/src/client/windows/crash_generation/client_info.cc b/src/client/windows/crash_generation/client_info.cc index 0da031c9..6d602744 100644 --- a/src/client/windows/crash_generation/client_info.cc +++ b/src/client/windows/crash_generation/client_info.cc @@ -169,8 +169,11 @@ bool ClientInfo::PopulateCustomInfo() { return bytes_count == read_count; } -const CustomClientInfo& ClientInfo::GetCustomInfo() const { - return custom_client_info_; +CustomClientInfo ClientInfo::GetCustomInfo() const { + CustomClientInfo custom_info; + custom_info.entries = custom_info_entries_.get(); + custom_info.count = custom_client_info_.count; + return custom_info; } } // namespace google_breakpad diff --git a/src/client/windows/crash_generation/client_info.h b/src/client/windows/crash_generation/client_info.h index f203b83d..a134d1bb 100644 --- a/src/client/windows/crash_generation/client_info.h +++ b/src/client/windows/crash_generation/client_info.h @@ -93,7 +93,7 @@ class ClientInfo { bool PopulateCustomInfo(); // Returns the client custom information. - const CustomClientInfo& GetCustomInfo() const; + CustomClientInfo GetCustomInfo() const; private: // Crash generation server. diff --git a/src/client/windows/crash_generation/crash_generation.vcproj b/src/client/windows/crash_generation/crash_generation.vcproj index 055ced6e..b9979b26 100644 --- a/src/client/windows/crash_generation/crash_generation.vcproj +++ b/src/client/windows/crash_generation/crash_generation.vcproj @@ -326,6 +326,10 @@ RelativePath=".\minidump_generator.h" > + + GetCustomInfo(); + CustomClientInfo custom_info = client_info->GetCustomInfo(); if (custom_info.count <= 0) { return; }