]> git.saurik.com Git - wxWidgets.git/commitdiff
removed unsecure wxTmpnam() function (patch by Francesco Montorsi)
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 8 Jul 2007 19:06:03 +0000 (19:06 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 8 Jul 2007 19:06:03 +0000 (19:06 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47238 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/wxcrt.h
include/wx/wxcrtbase.h
src/common/wxcrt.cpp

index e6116d07524c8f6365c7f40f859ae192581d7f18..99c01b94ea96472607cf6e7e3e913bb0f2dfae3b 100644 (file)
@@ -2,7 +2,7 @@
 // Name:        wx/wxcrt.h
 // Purpose:     Type-safe ANSI and Unicode builds compatible wrappers for
 //              CRT functions
 // Name:        wx/wxcrt.h
 // Purpose:     Type-safe ANSI and Unicode builds compatible wrappers for
 //              CRT functions
-// Author:      Joel Farley, Ove Kåven
+// Author:      Joel Farley, Ove Kven
 // Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee, Vaclav Slavik
 // Created:     1998/06/12
 // RCS-ID:      $Id$
 // Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee, Vaclav Slavik
 // Created:     1998/06/12
 // RCS-ID:      $Id$
@@ -703,13 +703,6 @@ inline int wxRemove(const wxString& path)
 inline int wxRename(const wxString& oldpath, const wxString& newpath)
     { return wxCRT_Rename(oldpath.fn_str(), newpath.fn_str()); }
 
 inline int wxRename(const wxString& oldpath, const wxString& newpath)
     { return wxCRT_Rename(oldpath.fn_str(), newpath.fn_str()); }
 
-// NB: we don't provide wxString/wxCStrData versions of wxTmpnam, because 's'
-//     is writable
-inline char *wxTmpnam(char *s)
-    { return wxCRT_TmpnamA(s); }
-inline wchar_t *wxTmpnam(wchar_t *s)
-    { return wxCRT_TmpnamW(s); }
-
 extern WXDLLIMPEXP_BASE int wxPuts(const wxString& s);
 extern WXDLLIMPEXP_BASE int wxFputs(const wxString& s, FILE *stream);
 extern WXDLLIMPEXP_BASE void wxPerror(const wxString& s);
 extern WXDLLIMPEXP_BASE int wxPuts(const wxString& s);
 extern WXDLLIMPEXP_BASE int wxFputs(const wxString& s, FILE *stream);
 extern WXDLLIMPEXP_BASE void wxPerror(const wxString& s);
index 6cc5b4b60dc244e7cd84ce042128d8eb85eab82c..cf590db7c3ad1684ddb02a8e45cfdbeabad374e4 100644 (file)
@@ -2,7 +2,7 @@
  * Name:        wx/wxcrtbase.h
  * Purpose:     Type-safe ANSI and Unicode builds compatible wrappers for
  *              CRT functions
  * Name:        wx/wxcrtbase.h
  * Purpose:     Type-safe ANSI and Unicode builds compatible wrappers for
  *              CRT functions
- * Author:      Joel Farley, Ove Kåven
+ * Author:      Joel Farley, Ove Kven
  * Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee
  * Created:     1998/06/12
  * RCS-ID:      $Id$
  * Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee
  * Created:     1998/06/12
  * RCS-ID:      $Id$
@@ -476,14 +476,12 @@ WXDLLIMPEXP_BASE int wxCRT_FputsW(const wchar_t *ch, FILE *stream);
 WXDLLIMPEXP_BASE int wxCRT_FputcW(wchar_t wc, FILE *stream);
 #endif
 
 WXDLLIMPEXP_BASE int wxCRT_FputcW(wchar_t wc, FILE *stream);
 #endif
 
-#define wxCRT_TmpnamA     tmpnam
-#ifdef _ttmpnam
-    #define wxCRT_TmpnamW _wtmpnam
-#endif
-
-#ifndef wxCRT_TmpnamW
-WXDLLIMPEXP_BASE wchar_t *wxCRT_TmpnamW(wchar_t *s);
-#endif
+/*
+   NB: tmpnam() is unsafe and thus is not wrapped!
+       Use other wxWidgets facilities instead:
+        wxFileName::CreateTempFileName, wxTempFile, or wxTempFileOutputStream
+*/
+#define wxTmpnam(x)         wxTmpnam_is_insecure_use_wxTempFile_instead
 
 #define wxCRT_PerrorA   perror
 #ifdef wxHAVE_TCHAR_SUPPORT
 
 #define wxCRT_PerrorA   perror
 #ifdef wxHAVE_TCHAR_SUPPORT
index e4e5426cf3df9ea44a451f8a2b0224f06722b03c..6d5c08774d341b599fa56c2c73e18dc284459e41 100644 (file)
@@ -1106,22 +1106,6 @@ int wxCRT_RemoveW(const wchar_t *path)
 }
 #endif
 
 }
 #endif
 
-#ifndef wxCRT_TmpnamW
-wchar_t *wxCRT_TmpnamW(wchar_t *s)
-{
-    // tmpnam_r() returns NULL if s=NULL, do the same
-    wxCHECK_MSG( s, NULL, "wxTmpnam must be called with a buffer" );
-
-#ifndef L_tmpnam
-    #define L_tmpnam 1024
-#endif
-    wxCharBuffer buf(L_tmpnam);
-    tmpnam(buf.data());
-
-    wxConvLibc.ToWChar(s, L_tmpnam+1, buf.data());
-    return s;
-}
-#endif // !wxCRT_TmpnamW
 
 
 // ============================================================================
 
 
 // ============================================================================