From d82c97978727f270d8f5212d8ad9de9d8ca87b5d Mon Sep 17 00:00:00 2001 From: Sebastien Barre Date: Tue, 21 Mar 2006 17:47:11 -0500 Subject: [PATCH] ENH: the arguments to this function were not checked in a robust way --- Source/kwsys/SystemTools.cxx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx index f54318c95..19c55a272 100644 --- a/Source/kwsys/SystemTools.cxx +++ b/Source/kwsys/SystemTools.cxx @@ -1918,7 +1918,7 @@ kwsys_stl::string SystemTools::FindProgram( const kwsys_stl::vector& userPaths, bool no_system_path) { - if(!nameIn) + if(!nameIn || !*nameIn) { return ""; } @@ -2245,9 +2245,9 @@ bool SystemTools::FindProgramPath(const char* argv0, const char* installPrefix ) { kwsys_stl::vector failures; - kwsys_stl::string self = argv0; + kwsys_stl::string self = argv0 ? argv0 : ""; + failures.push_back(self); SystemTools::ConvertToUnixSlashes(self); - failures.push_back(argv0); self = SystemTools::FindProgram(self.c_str()); if(!SystemTools::FileExists(self.c_str())) { @@ -2279,8 +2279,16 @@ bool SystemTools::FindProgramPath(const char* argv0, { failures.push_back(self); kwsys_ios::ostringstream msg; - msg << "Can not find the command line program " << exeName << "\n"; - msg << " argv[0] = \"" << argv0 << "\"\n"; + msg << "Can not find the command line program "; + if (exeName) + { + msg << exeName; + } + msg << "\n"; + if (argv0) + { + msg << " argv[0] = \"" << argv0 << "\"\n"; + } msg << " Attempted paths:\n"; kwsys_stl::vector::iterator i; for(i=failures.begin(); i != failures.end(); ++i)