• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <windows.h>
2 #include <malloc.h>
3 #include <errno.h>
4 #include <msvcrt.h>
5 #include <stdio.h>
6 #include <sec_api/stdio_s.h>
7 
8 static int __cdecl _int_vsprintf_s (char *, size_t, const char *, va_list);
9 static int __cdecl _stub (char *, size_t, const char *, va_list);
10 
11 int __cdecl (*__MINGW_IMP_SYMBOL(vsprintf_s))(char *, size_t, const char *, va_list) =
12  _stub;
13 
14 static int __cdecl
_stub(char * _DstBuf,size_t _Size,const char * _Format,va_list _ArgList)15 _stub (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList)
16 {
17   int __cdecl (*f)(char *, size_t, const char *, va_list) = __MINGW_IMP_SYMBOL(vsprintf_s);
18 
19   if (f == _stub)
20     {
21 	f = (int __cdecl (*)(char *, size_t, const char *, va_list))
22 	    GetProcAddress (__mingw_get_msvcrt_handle (), "vsprintf_s");
23 	if (!f)
24 	  f = _int_vsprintf_s;
25 	__MINGW_IMP_SYMBOL(vsprintf_s) = f;
26     }
27   return (*f)(_DstBuf, _Size, _Format, _ArgList);
28 }
29 
30 int __cdecl
vsprintf_s(char * _DstBuf,size_t _Size,const char * _Format,va_list _ArgList)31 vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList)
32 {
33   return _stub (_DstBuf, _Size, _Format, _ArgList);
34 }
35 
36 static int __cdecl
_int_vsprintf_s(char * _DstBuf,size_t _Size,const char * _Format,va_list _ArgList)37 _int_vsprintf_s (char *_DstBuf, size_t _Size, const char *_Format, va_list _ArgList)
38 {
39   return __ms_vsnprintf (_DstBuf, _Size, _Format, _ArgList);
40 }
41