View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0014299CMakeCMakepublic2013-07-17 10:432013-12-02 08:51
ReporterVitezslav Cizek 
Assigned ToBrad King 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
Platformx86_64OSLinuxOS VersionopenSUSE_12.3
Product Version 
Target VersionCMake 2.8.12Fixed in VersionCMake 2.8.12 
Summary0014299: Double free in cmCustomCommand
DescriptionThe cmCustomCommand class should implement an operator=
Otherwise the Backtrace can be free()d more than once.

Program received signal SIGSEGV, Segmentation fault.
(gdb) bt
#0 0x0000000000598780 in cmCustomCommand::~cmCustomCommand() ()
#1 0x00000000005d00d0 in cmGlobalGenerator::CreateGlobalTarget(char
const*, char const*, cmCustomCommandLines const*,
std::vector<std::string, std::allocator<std::string> >, char const*) ()
0000002 0x00000000005d0d16 in
cmGlobalGenerator::CreateDefaultGlobalTargets(std::map<cmsys::String,
cmTarget, std::less<cmsys::String>,
std::allocator<std::pair<cmsys::String const, cmTarget> > >*) ()
0000003 0x00000000005d2902 in cmGlobalGenerator::Generate() ()
0000004 0x00000000005de4cf in cmGlobalUnixMakefileGenerator3::Generate() ()
0000005 0x0000000000506d2b in cmake::Generate() ()
0000006 0x00000000004b62b2 in cmMakefile::TryCompile(char const*, char
const*, char const*, char const*, bool, std::vector<std::string,
std::allocator<std::string> > const*, std::string*) ()
0000007 0x0000000000555c94 in
cmCoreTryCompile::TryCompileCode(std::vector<std::string,
std::allocator<std::string> > const&) ()
0000008 0x00000000005575ec in
cmTryCompileCommand::InitialPass(std::vector<std::string,
std::allocator<std::string> > const&, cmExecutionStatus&) ()
#9 0x0000000000576a35 in
cmCommand::InvokeInitialPass(std::vector<cmListFileArgument,
std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) ()
0000010 0x00000000004c15fd in cmMakefile::ExecuteCommand(cmListFileFunction
const&, cmExecutionStatus&) ()
#11 0x00000000005643a2 in
cmIfFunctionBlocker::IsFunctionBlocked(cmListFileFunction const&,
cmMakefile&, cmExecutionStatus&) ()
0000012 0x00000000004b4998 in
cmMakefile::IsFunctionBlocked(cmListFileFunction const&,
cmExecutionStatus&) ()
0000013 0x00000000004c140e in cmMakefile::ExecuteCommand(cmListFileFunction
const&, cmExecutionStatus&) ()
0000014 0x00000000005643a2 in
cmIfFunctionBlocker::IsFunctionBlocked(cmListFileFunction const&,
cmMakefile&, cmExecutionStatus&) ()
0000015 0x00000000004b4998 in
cmMakefile::IsFunctionBlocked(cmListFileFunction const&,
cmExecutionStatus&) ()
0000016 0x00000000004c140e in cmMakefile::ExecuteCommand(cmListFileFunction
const&, cmExecutionStatus&) ()
0000017 0x00000000005643a2 in
cmIfFunctionBlocker::IsFunctionBlocked(cmListFileFunction const&,
cmMakefile&, cmExecutionStatus&) ()
0000018 0x00000000004b4998 in
cmMakefile::IsFunctionBlocked(cmListFileFunction const&,
cmExecutionStatus&) ()
0000019 0x00000000004c140e in cmMakefile::ExecuteCommand(cmListFileFunction
const&, cmExecutionStatus&) ()
0000020 0x00000000004c205f in cmMakefile::ReadListFile(char const*, char
const*, std::string*, bool) ()
0000021 0x0000000000534956 in cmFindPackageCommand::ReadListFile(char
const*, cmFindPackageCommand::PolicyScopeRule) ()
0000022 0x0000000000534aa8 in cmFindPackageCommand::FindModule(bool&) ()
0000023 0x000000000055f1d7 in
cmFindPackageCommand::InitialPass(std::vector<std::string,
std::allocator<std::string> > const&, cmExecutionStatus&) ()
0000024 0x0000000000576a35 in
cmCommand::InvokeInitialPass(std::vector<cmListFileArgument,
std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) ()
0000025 0x00000000004c15fd in cmMakefile::ExecuteCommand(cmListFileFunction
const&, cmExecutionStatus&) ()
0000026 0x00000000005643a2 in
cmIfFunctionBlocker::IsFunctionBlocked(cmListFileFunction const&,
cmMakefile&, cmExecutionStatus&) ()
0000027 0x00000000004b4998 in
cmMakefile::IsFunctionBlocked(cmListFileFunction const&,
cmExecutionStatus&) ()
0000028 0x00000000004c140e in cmMakefile::ExecuteCommand(cmListFileFunction
const&, cmExecutionStatus&) ()
0000029 0x00000000004c205f in cmMakefile::ReadListFile(char const*, char
const*, std::string*, bool) ()
0000030 0x0000000000534956 in cmFindPackageCommand::ReadListFile(char
const*, cmFindPackageCommand::PolicyScopeRule) ()
0000031 0x0000000000534aa8 in cmFindPackageCommand::FindModule(bool&) ()
0000032 0x000000000055f1d7 in
cmFindPackageCommand::InitialPass(std::vector<std::string,
std::allocator<std::string> > const&, cmExecutionStatus&) ()
0000033 0x0000000000576a35 in
cmCommand::InvokeInitialPass(std::vector<cmListFileArgument,
std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) ()
0000034 0x00000000004c15fd in cmMakefile::ExecuteCommand(cmListFileFunction
const&, cmExecutionStatus&) ()
0000035 0x00000000004c205f in cmMakefile::ReadListFile(char const*, char
const*, std::string*, bool) ()
0000036 0x00000000005eea28 in cmLocalGenerator::ReadInputFile() ()
0000037 0x00000000005f1058 in cmLocalGenerator::Configure() ()
0000038 0x00000000005fa474 in cmLocalUnixMakefileGenerator3::Configure() ()
#39 0x00000000005d36e6 in cmGlobalGenerator::Configure() ()
0000040 0x0000000000505d56 in cmake::ActualConfigure() ()
0000041 0x00000000005062a4 in cmake::Configure() ()
0000042 0x0000000000506f86 in cmake::Run(std::vector<std::string,
std::allocator<std::string> > const&, bool) ()
0000043 0x0000000000499541 in do_cmake(int, char**) ()
0000044 0x00000000004969c9 in main ()


TagsNo tags attached.
Attached Filespatch file icon cmake-cmCustomCommand_add_operator=.patch [^] (1,865 bytes) 2013-07-17 10:43 [Show Content]

 Relationships

  Notes
(0033565)
Brad King (manager)
2013-07-17 11:25

Wow, how did this go unnoticed for so long? Thanks for reporting. I've applied a similar patch to that proposed, modified because we do not use try/catch/throw constructs in CMake source:

 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=17c841c4 [^]
(0034650)
Robert Maynard (manager)
2013-12-02 08:51

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2013-07-17 10:43 Vitezslav Cizek New Issue
2013-07-17 10:43 Vitezslav Cizek File Added: cmake-cmCustomCommand_add_operator=.patch
2013-07-17 11:25 Brad King Note Added: 0033565
2013-07-17 11:25 Brad King Assigned To => Brad King
2013-07-17 11:25 Brad King Status new => resolved
2013-07-17 11:25 Brad King Resolution open => fixed
2013-07-17 11:25 Brad King Fixed in Version => CMake 2.8.12
2013-07-17 11:25 Brad King Target Version => CMake 2.8.12
2013-12-02 08:51 Robert Maynard Note Added: 0034650
2013-12-02 08:51 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team