Index: chrome/browser/password_manager/native_backend_libsecret.cc |
diff --git a/chrome/browser/password_manager/native_backend_libsecret.cc b/chrome/browser/password_manager/native_backend_libsecret.cc |
index 17051f9ccbf82d1de69850dfb255c26b2c3ffcc0..1ec3158fde02dfbdfe7925564937b4e4e1753075 100644 |
--- a/chrome/browser/password_manager/native_backend_libsecret.cc |
+++ b/chrome/browser/password_manager/native_backend_libsecret.cc |
@@ -19,6 +19,10 @@ using autofill::PasswordForm; |
using base::UTF8ToUTF16; |
using base::UTF16ToUTF8; |
+namespace { |
+char empty_string[] = ""; |
vabr (Chromium)
2015/01/29 14:23:13
const char kEmptyString[] = "";
dvadym
2015/01/29 14:27:57
Done.
|
+} |
+ |
typeof(&::secret_password_store_sync) |
LibsecretLoader::secret_password_store_sync; |
typeof(&::secret_service_search_sync) |
@@ -120,13 +124,16 @@ const SecretSchema kLibsecretSchema = { |
{nullptr, SECRET_SCHEMA_ATTRIBUTE_STRING}}}; |
char* GetStringFromAttributes(GHashTable* attrs, const char* keyname) { |
- return static_cast<char*>(g_hash_table_lookup(attrs, keyname)); |
+ gpointer value = g_hash_table_lookup(attrs, keyname); |
+ return value ? static_cast<char*>(value) : empty_string; |
} |
uint32_t GetUintFromAttributes(GHashTable* attrs, const char* keyname) { |
- char* value = static_cast<char*>(g_hash_table_lookup(attrs, keyname)); |
+ gpointer value = g_hash_table_lookup(attrs, keyname); |
+ if (!value) |
+ return uint32_t(); |
uint32_t result; |
- bool value_ok = base::StringToUint(value, &result); |
+ bool value_ok = base::StringToUint(static_cast<char*>(value), &result); |
DCHECK(value_ok); |
return result; |
} |