summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-04 21:54:00 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-04 21:54:00 +0000
commitab23356704ac5100eea5251be53022c142d47b6e (patch)
tree75126467b87a36117e577e8ca1e0d666d4f4f81f
parent4d1eddc55aeadfed06eebfe95467d436c0ed2f78 (diff)
downloadchromium_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.h9
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();
}
}