From 251dd9b09e9b20233d88d59edae33159fdee3a5a Mon Sep 17 00:00:00 2001 From: brucedawson Date: Mon, 8 Dec 2014 10:26:50 -0800 Subject: [PATCH] Fixing error checking of PathService::Get. The return value of PathService::Get was being checked with the FAILED() macro which is intended for use with HRESULT return types. Because PathService::Get returns a bool and FAILED treats all non-negative numbers as success, failures will never be detected. This was found by VC++'s /analyze which said: src\cloud_print\virtual_driver\win\install\setup.cc(510) : warning C6215: Cast between semantically different integer types: a Boolean type to HRESULT. The original bug was introduced by https://chromiumcodereview.appspot.com/11876005 BUG=427616 Review URL: https://codereview.chromium.org/740463006 Cr-Commit-Position: refs/heads/master@{#307280} --- cloud_print/virtual_driver/win/install/setup.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloud_print/virtual_driver/win/install/setup.cc b/cloud_print/virtual_driver/win/install/setup.cc index ad51a8e9448e..f4d0c4d79b83 100644 --- a/cloud_print/virtual_driver/win/install/setup.cc +++ b/cloud_print/virtual_driver/win/install/setup.cc @@ -507,7 +507,7 @@ HRESULT ExecuteCommands() { *base::CommandLine::ForCurrentProcess(); base::FilePath exe_path; - if (FAILED(PathService::Get(base::DIR_EXE, &exe_path)) || + if (!PathService::Get(base::DIR_EXE, &exe_path) || !base::DirectoryExists(exe_path)) { return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND); }