summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-07 16:29:51 +0000
committeryoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-07 16:29:51 +0000
commit8de22722325bf921bf062d90315ea8388689edb1 (patch)
tree67793023cbbda4ca9e56bc72dbbbb0d409080484
parent9cd68c2e8508f968878a527572e7a46be873208d (diff)
downloadchromium_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.cc4
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());
}
}
}