]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fs_mem.cpp
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / src / common / fs_mem.cpp
index 2e9927590d667c48a4173d903575eaa83d387d4d..5f96257100180f37ed3a5b1f55a4ed56d245f010 100644 (file)
@@ -70,7 +70,7 @@ private:
 #endif // wxUSE_DATETIME
     }
 
-    DECLARE_NO_COPY_CLASS(wxMemoryFSFile)
+    wxDECLARE_NO_COPY_CLASS(wxMemoryFSFile);
 };
 
 #if wxUSE_BASE
@@ -186,9 +186,9 @@ void wxMemoryFSHandlerBase::AddFileWithMimeType(const wxString& filename,
                                                 const wxString& textdata,
                                                 const wxString& mimetype)
 {
-    AddFileWithMimeType(filename,
-                        (const void*) textdata.mb_str(), textdata.length(),
-                        mimetype);
+    const wxCharBuffer buf(textdata.To8BitData());
+
+    AddFileWithMimeType(filename, buf.data(), buf.length(), mimetype);
 }
 
 
@@ -249,7 +249,7 @@ wxMemoryFSHandler::AddFile(const wxString& filename,
         return;
 
     wxMemoryOutputStream mems;
-    if ( image.Ok() && image.SaveFile(mems, type) )
+    if ( image.IsOk() && image.SaveFile(mems, type) )
     {
         m_Hash[filename] = new wxMemoryFSFile
                                (