OSDN Git Service

btif_config: Fix pointer to freed memory
authorGreg Kaiser <gkaiser@google.com>
Tue, 26 May 2020 12:42:36 +0000 (05:42 -0700)
committerGreg Kaiser <gkaiser@google.com>
Tue, 26 May 2020 12:49:45 +0000 (12:49 +0000)
We change the scope of our 'string' declaration so the contents
are still in scope when we use a pointer to them.  Previously,
the contents were out of scope when we referenced them through
a pointer.

Bug: 148758680
Test: TreeHugger
Change-Id: Ib0aa689bf4547d079b77965d958cc382ba0276e6

btif/src/btif_config.cc

index b39564c..d2250a7 100644 (file)
@@ -517,11 +517,11 @@ bool btif_config_get_bin(const std::string& section, const std::string& key,
 
   bool in_encrypt_key_name_list = btif_in_encrypt_key_name_list(key);
   bool is_key_encrypted = *value_str_from_config == ENCRYPTED_STR;
+  std::string string;
 
   if (!value_str_from_config->empty() && in_encrypt_key_name_list &&
       is_key_encrypted) {
-    std::string string =
-        get_bluetooth_keystore_interface()->get_key(section + "-" + key);
+    string = get_bluetooth_keystore_interface()->get_key(section + "-" + key);
     value_str = &string;
   } else {
     value_str = value_str_from_config;