diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-04 21:54:00 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-04 21:54:00 +0000 |
commit | ab23356704ac5100eea5251be53022c142d47b6e (patch) | |
tree | 75126467b87a36117e577e8ca1e0d666d4f4f81f | |
parent | 4d1eddc55aeadfed06eebfe95467d436c0ed2f78 (diff) | |
download | chromium_src-ab23356704ac5100eea5251be53022c142d47b6e.zip chromium_src-ab23356704ac5100eea5251be53022c142d47b6e.tar.gz chromium_src-ab23356704ac5100eea5251be53022c142d47b6e.tar.bz2 |
Coverity: Fix a potential use-after-free.
The code assumes |handle_| is a value-type, which may not always be true.
CID_COUNT=1
CID=104125
BUG=none
TEST=none
R=rvargas
TBR=darin
Review URL: https://chromiumcodereview.appspot.com/10483008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140390 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | base/win/scoped_handle.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/base/win/scoped_handle.h b/base/win/scoped_handle.h index 287ac6e..0dee86e 100644 --- a/base/win/scoped_handle.h +++ b/base/win/scoped_handle.h @@ -82,11 +82,12 @@ class GenericScopedHandle { // Explicitly closes the owned handle. void Close() { if (Traits::IsHandleValid(handle_)) { - if (!Traits::CloseHandle(handle_)) { - CHECK(false); - } Verifier::StopTracking(handle_, this, - tracked_objects::GetProgramCounter()); + tracked_objects::GetProgramCounter()); + + if (!Traits::CloseHandle(handle_)) + CHECK(false); + handle_ = Traits::NullHandle(); } } |