Put in some basic effort to avoid overflows. Our vsprintf_s doesn't do anything
like the standard's yet, but at least it no longer tries to write over the 
boundary.

Patch OK?

diff --git a/mingw-w64-crt/secapi/vsprintf_s.c 
b/mingw-w64-crt/secapi/vsprintf_s.c
index 0ad1ef7..9e82bda 100644
--- a/mingw-w64-crt/secapi/vsprintf_s.c
+++ b/mingw-w64-crt/secapi/vsprintf_s.c
@@ -2,8 +2,8 @@
 #include <malloc.h>
 #include <errno.h>
 #include <msvcrt.h>
+#include <stdio.h>

-int __cdecl vsprintf (char *, const char *, va_list);
 int __cdecl vsprintf_s (char *, size_t, const char *, va_list);
 static int __cdecl _int_vsprintf_s (char *, size_t, const char *, va_list);
 static int __cdecl _stub (char *, size_t, const char *, va_list);
@@ -34,7 +34,7 @@ vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, 
va_list _ArgList)
 }

 static int __cdecl
-_int_vsprintf_s (char *_DstBuf, size_t __UNUSED_PARAM(_Size), const char 
*_Format, va_list _ArgList)
+_int_vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list 
_ArgList)
 {
-  return vsprintf (_DstBuf, _Format, _ArgList);
+  return __ms_vsnprintf (_DstBuf, _Size, _Format, _ArgList);
 }

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to