Просмотр исходного кода

ENH: check return value of GetLongPath

Bill Hoffman 20 лет назад
Родитель
Сommit
be32b258cb
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      Source/kwsys/SystemTools.cxx

+ 5 - 1
Source/kwsys/SystemTools.cxx

@@ -2247,7 +2247,11 @@ kwsys_stl::string SystemTools::GetActualCaseForPath(const char* p)
     return path;
     }
   char buffer[MAX_PATH+1];
-  ::GetLongPathName(path.c_str(), buffer, MAX_PATH+1);
+  int len = ::GetLongPathName(path.c_str(), buffer, MAX_PATH+1);
+  if(len == 0 || len > MAX_PATH+1)
+    {
+    return path;
+    }
   return buffer;
 #endif  
 }