Fix potential UAF in ConcatInPlace.
[pdfium.git] / core / src / fxcrt / fxcrt_platforms.cpp
index 7fb3ada..d9b9962 100644 (file)
@@ -7,13 +7,9 @@
 #include "../../include/fxcrt/fx_ext.h"
 #include "fxcrt_platforms.h"
 #if (_FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ && _FXM_PLATFORM_ != _FXM_PLATFORM_LINUX_ && _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_ && _FXM_PLATFORM_ != _FXM_PLATFORM_ANDROID_)
-IFXCRT_FileAccess* FXCRT_FileAccess_Create(IFX_Allocator* pAllocator)
+IFXCRT_FileAccess* FXCRT_FileAccess_Create()
 {
-    if (pAllocator) {
-        return FX_NewAtAllocator(pAllocator) CFXCRT_FileAccess_CRT;
-    } else {
-        return FX_NEW CFXCRT_FileAccess_CRT;
-    }
+    return new CFXCRT_FileAccess_CRT;
 }
 void FXCRT_GetFileModeString(FX_DWORD dwModes, CFX_ByteString &bsMode)
 {
@@ -50,7 +46,7 @@ FX_BOOL CFXCRT_FileAccess_CRT::Open(FX_BSTR fileName, FX_DWORD dwMode)
     }
     CFX_ByteString strMode;
     FXCRT_GetFileModeString(dwMode, strMode);
-    m_hFile = FXSYS_fopen(fileName.GetCStr(), (FX_LPCSTR)strMode);
+    m_hFile = FXSYS_fopen(fileName.GetCStr(), strMode.c_str());
     return m_hFile != NULL;
 }
 FX_BOOL CFXCRT_FileAccess_CRT::Open(FX_WSTR fileName, FX_DWORD dwMode)
@@ -60,7 +56,7 @@ FX_BOOL CFXCRT_FileAccess_CRT::Open(FX_WSTR fileName, FX_DWORD dwMode)
     }
     CFX_WideString strMode;
     FXCRT_GetFileModeString(dwMode, strMode);
-    m_hFile = FXSYS_wfopen(fileName.GetPtr(), (FX_LPCWSTR)strMode);
+    m_hFile = FXSYS_wfopen(fileName.GetPtr(), strMode.c_str());
     return m_hFile != NULL;
 }
 void CFXCRT_FileAccess_CRT::Close()
@@ -71,13 +67,9 @@ void CFXCRT_FileAccess_CRT::Close()
     FXSYS_fclose(m_hFile);
     m_hFile = NULL;
 }
-void CFXCRT_FileAccess_CRT::Release(IFX_Allocator* pAllocator)
+void CFXCRT_FileAccess_CRT::Release()
 {
-    if (pAllocator) {
-        FX_DeleteAtAllocator(this, pAllocator, CFXCRT_FileAccess_CRT);
-    } else {
-        delete this;
-    }
+    delete this;
 }
 FX_FILESIZE CFXCRT_FileAccess_CRT::GetSize() const
 {