OSDN Git Service

Fixed possible memory leak.
authorLoRd_MuldeR <mulder2@gmx.de>
Sun, 22 Nov 2015 17:36:05 +0000 (18:36 +0100)
committerLoRd_MuldeR <mulder2@gmx.de>
Sun, 22 Nov 2015 17:36:05 +0000 (18:36 +0100)
src/OSSupport_Win32.cpp

index 1a483f5..133f3ad 100644 (file)
@@ -843,12 +843,15 @@ QString MUtils::OS::get_file_path(const int &fd)
                const DWORD len = g_getFilePath_prt(handle, NULL, 0, FILE_NAME_OPENED);
                if (len > 0)
                {
-                       wchar_t *const buffer = (wchar_t*) _malloca(sizeof(wchar_t) * len);
-                       const DWORD ret = g_getFilePath_prt(handle, buffer, len, FILE_NAME_OPENED);
-                       if ((ret > 0) && (ret < len))
+                       if (wchar_t *const buffer = (wchar_t*)_malloca(sizeof(wchar_t) * len))
                        {
-                               const QString path(MUTILS_QSTR(buffer));
-                               return path.startsWith(QLatin1String("\\\\?\\")) ? path.mid(4) : path;
+                               const DWORD ret = g_getFilePath_prt(handle, buffer, len, FILE_NAME_OPENED);
+                               if ((ret > 0) && (ret < len))
+                               {
+                                       const QString path(MUTILS_QSTR(buffer));
+                                       return path.startsWith(QLatin1String("\\\\?\\")) ? path.mid(4) : path;
+                               }
+                               _freea(buffer);
                        }
                }
        }