mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
protect vfprintf from hijacking by Windows gettext just like other members of the *printf family.
This commit is contained in:
parent
c15de02f61
commit
796a3f373a
@ -6,7 +6,7 @@
|
|||||||
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/include/port.h,v 1.105 2006/10/19 20:56:22 tgl Exp $
|
* $PostgreSQL: pgsql/src/include/port.h,v 1.106 2006/11/28 01:12:33 adunstan Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -145,6 +145,9 @@ extern unsigned char pg_tolower(unsigned char ch);
|
|||||||
#ifdef sprintf
|
#ifdef sprintf
|
||||||
#undef sprintf
|
#undef sprintf
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef vfprintf
|
||||||
|
#undef vfprintf
|
||||||
|
#endif
|
||||||
#ifdef fprintf
|
#ifdef fprintf
|
||||||
#undef fprintf
|
#undef fprintf
|
||||||
#endif
|
#endif
|
||||||
@ -161,6 +164,7 @@ extern int
|
|||||||
pg_sprintf(char *str, const char *fmt,...)
|
pg_sprintf(char *str, const char *fmt,...)
|
||||||
/* This extension allows gcc to check the format string */
|
/* This extension allows gcc to check the format string */
|
||||||
__attribute__((format(printf, 2, 3)));
|
__attribute__((format(printf, 2, 3)));
|
||||||
|
extern int pg_vfprintf(FILE * stream, const char *fmt, va_list args);
|
||||||
extern int
|
extern int
|
||||||
pg_fprintf(FILE *stream, const char *fmt,...)
|
pg_fprintf(FILE *stream, const char *fmt,...)
|
||||||
/* This extension allows gcc to check the format string */
|
/* This extension allows gcc to check the format string */
|
||||||
@ -179,12 +183,14 @@ __attribute__((format(printf, 1, 2)));
|
|||||||
#define vsnprintf(...) pg_vsnprintf(__VA_ARGS__)
|
#define vsnprintf(...) pg_vsnprintf(__VA_ARGS__)
|
||||||
#define snprintf(...) pg_snprintf(__VA_ARGS__)
|
#define snprintf(...) pg_snprintf(__VA_ARGS__)
|
||||||
#define sprintf(...) pg_sprintf(__VA_ARGS__)
|
#define sprintf(...) pg_sprintf(__VA_ARGS__)
|
||||||
|
#define vfprintf(...) pg_vfprintf(__VA_ARGS__)
|
||||||
#define fprintf(...) pg_fprintf(__VA_ARGS__)
|
#define fprintf(...) pg_fprintf(__VA_ARGS__)
|
||||||
#define printf(...) pg_printf(__VA_ARGS__)
|
#define printf(...) pg_printf(__VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
#define vsnprintf pg_vsnprintf
|
#define vsnprintf pg_vsnprintf
|
||||||
#define snprintf pg_snprintf
|
#define snprintf pg_snprintf
|
||||||
#define sprintf pg_sprintf
|
#define sprintf pg_sprintf
|
||||||
|
#define vfprintf pg_vfprintf
|
||||||
#define fprintf pg_fprintf
|
#define fprintf pg_fprintf
|
||||||
#define printf pg_printf
|
#define printf pg_printf
|
||||||
#endif
|
#endif
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/port/snprintf.c,v 1.32 2006/10/04 00:30:14 momjian Exp $
|
* $PostgreSQL: pgsql/src/port/snprintf.c,v 1.33 2006/11/28 01:12:34 adunstan Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "c.h"
|
#include "c.h"
|
||||||
@ -99,6 +99,7 @@
|
|||||||
#undef vsnprintf
|
#undef vsnprintf
|
||||||
#undef snprintf
|
#undef snprintf
|
||||||
#undef sprintf
|
#undef sprintf
|
||||||
|
#undef vfprintf
|
||||||
#undef fprintf
|
#undef fprintf
|
||||||
#undef printf
|
#undef printf
|
||||||
|
|
||||||
@ -209,7 +210,7 @@ pg_sprintf(char *str, const char *fmt,...)
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
int
|
||||||
pg_vfprintf(FILE *stream, const char *fmt, va_list args)
|
pg_vfprintf(FILE *stream, const char *fmt, va_list args)
|
||||||
{
|
{
|
||||||
PrintfTarget target;
|
PrintfTarget target;
|
||||||
|
Loading…
Reference in New Issue
Block a user