diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-10 02:31:23 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-10 02:31:23 +0000 |
commit | b10a4abe46387826a54dd4a04fd251da948e10c6 (patch) | |
tree | 41c1fc739e96ec584a5f47e1cd84f15adb017317 | |
parent | de1712029a9c7518a8206e4d319730d568270421 (diff) | |
download | chromium_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.cc | 3 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_sync_data.cc | 6 | ||||
-rw-r--r-- | tools/valgrind/memcheck/suppressions.txt | 6 |
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 ... |