diff --git a/Source/cmExecuteProcessCommand.cxx b/Source/cmExecuteProcessCommand.cxx index ff6340f9c8..de58c0bc00 100644 --- a/Source/cmExecuteProcessCommand.cxx +++ b/Source/cmExecuteProcessCommand.cxx @@ -119,7 +119,9 @@ bool cmExecuteProcessCommand::InitialPass(std::vector const& args, } // Create a process instance. - cmsysProcess* cp = cmsysProcess_New(); + std::unique_ptr cp_ptr( + cmsysProcess_New(), cmsysProcess_Delete); + cmsysProcess* cp = cp_ptr.get(); // Set the command sequence. for (std::vector const& cmd : arguments.Commands) { @@ -297,9 +299,6 @@ bool cmExecuteProcessCommand::InitialPass(std::vector const& args, } } - // Delete the process instance. - cmsysProcess_Delete(cp); - return true; }