summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-10 02:31:23 +0000
committerasargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-10 02:31:23 +0000
commitb10a4abe46387826a54dd4a04fd251da948e10c6 (patch)
tree41c1fc739e96ec584a5f47e1cd84f15adb017317
parentde1712029a9c7518a8206e4d319730d568270421 (diff)
downloadchromium_src-b10a4abe46387826a54dd4a04fd251da948e10c6.zip
chromium_src-b10a4abe46387826a54dd4a04fd251da948e10c6.tar.gz
chromium_src-b10a4abe46387826a54dd4a04fd251da948e10c6.tar.bz2
Fix cause of uninitialized memory read in ExtensionService unit_tests
In crrev.com/113111 I checked in code that reads a app state boolean from an ExtensionSyncData object which is uninitialized. This fixes the initialization for the relevant constructor, and also limits reading that value to only when the extension is an app. BUG=106549 TEST=valgrind run of ExtensionService sync-related unit_tests should come back clean Review URL: http://codereview.chromium.org/8899010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113926 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/extension_service.cc3
-rw-r--r--chrome/browser/extensions/extension_sync_data.cc6
-rw-r--r--tools/valgrind/memcheck/suppressions.txt6
3 files changed, 7 insertions, 8 deletions
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 56cf524..402e0e4 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -1444,7 +1444,8 @@ void ExtensionService::ProcessExtensionSyncData(
bundle.pending_sync_data[extension_sync_data.id()] = extension_sync_data;
CheckForUpdatesSoon();
}
- if (extension_sync_data.notifications_disabled() !=
+ if (extension_sync_data.type() == Extension::SYNC_TYPE_APP &&
+ extension_sync_data.notifications_disabled() !=
extension_prefs_->IsAppNotificationDisabled(id)) {
extension_prefs_->SetAppNotificationDisabled(
id, extension_sync_data.notifications_disabled());
diff --git a/chrome/browser/extensions/extension_sync_data.cc b/chrome/browser/extensions/extension_sync_data.cc
index db7266d..2bd1bfc 100644
--- a/chrome/browser/extensions/extension_sync_data.cc
+++ b/chrome/browser/extensions/extension_sync_data.cc
@@ -27,7 +27,11 @@ ExtensionSyncData::ExtensionSyncData(const SyncData& sync_data)
}
ExtensionSyncData::ExtensionSyncData(const SyncChange& sync_change)
- : uninstalled_(sync_change.change_type() == SyncChange::ACTION_DELETE) {
+ : uninstalled_(sync_change.change_type() == SyncChange::ACTION_DELETE),
+ enabled_(false),
+ incognito_enabled_(false),
+ type_(Extension::SYNC_TYPE_NONE),
+ notifications_disabled_(false) {
PopulateFromSyncData(sync_change.sync_data());
}
diff --git a/tools/valgrind/memcheck/suppressions.txt b/tools/valgrind/memcheck/suppressions.txt
index 0681b41..63975cf 100644
--- a/tools/valgrind/memcheck/suppressions.txt
+++ b/tools/valgrind/memcheck/suppressions.txt
@@ -5269,12 +5269,6 @@
fun:_ZN5ppapi5proxy20PPB_Graphics2D_Proxy14OnHostMsgFlushERKNS_12HostResourceE
}
{
- bug_106549
- Memcheck:Uninitialized
- fun:_ZN16ExtensionService24ProcessExtensionSyncDataERK17ExtensionSyncDataRNS_10SyncBundleE
- fun:_ZN16ExtensionService18ProcessSyncChangesERKN15tracked_objects8LocationERKSt6vectorI10SyncChangeSaIS5_EE
-}
-{
bug_106552
Memcheck:Uninitialized
...