core: fix issues from valgrind builder
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 17 Nov 2018 07:32:06 +0000 (07:32 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 17 Nov 2018 07:32:06 +0000 (07:32 +0000)
modules/core/src/utils/filesystem.cpp
platforms/scripts/valgrind.supp

index 99d764f..6b44477 100644 (file)
@@ -87,15 +87,18 @@ cv::String join(const cv::String& base, const cv::String& path)
 
 cv::String canonical(const cv::String& path)
 {
+    cv::String result;
 #ifdef _WIN32
-    const char* result = _fullpath(NULL, path.c_str(), 0);
+    const char* result_str = _fullpath(NULL, path.c_str(), 0);
 #else
-    const char* result = realpath(path.c_str(), NULL);
+    const char* result_str = realpath(path.c_str(), NULL);
 #endif
-    if (result)
-        return cv::String(result);
-    // no error handling, just return input
-    return path;
+    if (result_str)
+    {
+        result = cv::String(result_str);
+        free((void*)result_str);
+    }
+    return result.empty() ? path : result;
 }
 
 
index 074c201..7a43414 100644 (file)
 }
 
 {
+   OpenCV-UMatDataAutoLockerTLS
+   Memcheck:Leak
+   ...
+   fun:_ZN2cvL21getUMatDataAutoLockerEv
+}
+
+{
    OpenCV-haveOpenCL
    Memcheck:Leak
    ...