From efa44fc1f51574331703d15d8e079d6887d932f5 Mon Sep 17 00:00:00 2001 From: Berk Geveci Date: Wed, 29 Aug 2001 09:44:27 -0400 Subject: [PATCH] BUG: fix out of bounds read on string in mkdir --- Source/cmSystemTools.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 1494a3435..4a2948b14 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -140,7 +140,10 @@ bool cmSystemTools::MakeDirectory(const char* path) return true; } std::string dir = path; - + if(dir.size() == 0) + { + return false; + } cmSystemTools::ConvertToUnixSlashes(dir); std::string::size_type pos = dir.find(':'); @@ -155,7 +158,7 @@ bool cmSystemTools::MakeDirectory(const char* path) Mkdir(topdir.c_str()); pos++; } - if(topdir[dir.size()] == '/') + if(dir[dir.size()-1] == '/') { topdir = dir.substr(0, dir.size()); }