When an SGPath is empty, don't bother stat()-ing. This avoids
an uninitialized-memory read inside the C-runtime on Windows.
return;
}
+ if (path.empty()) {
+ _exists = false;
+ return;
+ }
+
#ifdef _WIN32
struct _stat buf ;
-
bool remove_trailing = false;
- if ( path.length() > 1 && path[path.length()-1] == '/' )
- remove_trailing=true;
- if (_stat (path.substr(0,remove_trailing?path.length()-1:path.length()).c_str(), &buf ) < 0) {
+ string statPath(path);
+ if ((path.length() > 1) && (path.back() == '/')) {
+ statPath.pop_back();
+ }
+
+ if (_stat(statPath.c_str(), &buf ) < 0) {
_exists = false;
} else {
_exists = true;