diff options
author | yoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-07 16:29:51 +0000 |
---|---|---|
committer | yoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-07 16:29:51 +0000 |
commit | 8de22722325bf921bf062d90315ea8388689edb1 (patch) | |
tree | 67793023cbbda4ca9e56bc72dbbbb0d409080484 | |
parent | 9cd68c2e8508f968878a527572e7a46be873208d (diff) | |
download | chromium_src-8de22722325bf921bf062d90315ea8388689edb1.zip chromium_src-8de22722325bf921bf062d90315ea8388689edb1.tar.gz chromium_src-8de22722325bf921bf062d90315ea8388689edb1.tar.bz2 |
Fix use-after-free in ExternalPrefExtensionLoader.
BUG=131347
TEST=There should be no segfault on closing chrome when a standalone external extension json has been loaded.
Review URL: https://chromiumcodereview.appspot.com/10542046
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141019 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/extensions/external_pref_extension_loader.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/chrome/browser/extensions/external_pref_extension_loader.cc b/chrome/browser/extensions/external_pref_extension_loader.cc index 90f1d6f..1563ebf 100644 --- a/chrome/browser/extensions/external_pref_extension_loader.cc +++ b/chrome/browser/extensions/external_pref_extension_loader.cc @@ -132,7 +132,7 @@ void ExternalPrefExtensionLoader::LoadOnFileThread() { ReadStandaloneExtensionPrefFiles(prefs.get()); - prefs_.reset(prefs.release()); + prefs_.swap(prefs); if (!prefs_.get()) prefs_.reset(new DictionaryValue()); @@ -226,7 +226,7 @@ void ExternalPrefExtensionLoader::ReadStandaloneExtensionPrefFiles( ExtractExtensionPrefs(&serializer, extension_candidate_path)); if (ext_prefs.get()) { DVLOG(1) << "Adding extension with id: " << id; - prefs->Set(id, ext_prefs.get()); + prefs->Set(id, ext_prefs.release()); } } } |