From: Andrew Dunstan Date: Tue, 28 Nov 2006 01:12:34 +0000 (+0000) Subject: protect vfprintf from hijacking by Windows gettext just like other members of the... X-Git-Tag: REL8_2_0~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=796a3f373a6a19695f4d423beb38ace373874599;p=thirdparty%2Fpostgresql.git protect vfprintf from hijacking by Windows gettext just like other members of the *printf family. --- diff --git a/src/include/port.h b/src/include/port.h index 21c8b926432..59a15c103ca 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group * 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 #undef sprintf #endif +#ifdef vfprintf +#undef vfprintf +#endif #ifdef fprintf #undef fprintf #endif @@ -161,6 +164,7 @@ extern int pg_sprintf(char *str, const char *fmt,...) /* This extension allows gcc to check the format string */ __attribute__((format(printf, 2, 3))); +extern int pg_vfprintf(FILE * stream, const char *fmt, va_list args); extern int pg_fprintf(FILE *stream, const char *fmt,...) /* 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 snprintf(...) pg_snprintf(__VA_ARGS__) #define sprintf(...) pg_sprintf(__VA_ARGS__) +#define vfprintf(...) pg_vfprintf(__VA_ARGS__) #define fprintf(...) pg_fprintf(__VA_ARGS__) #define printf(...) pg_printf(__VA_ARGS__) #else #define vsnprintf pg_vsnprintf #define snprintf pg_snprintf #define sprintf pg_sprintf +#define vfprintf pg_vfprintf #define fprintf pg_fprintf #define printf pg_printf #endif diff --git a/src/port/snprintf.c b/src/port/snprintf.c index e4472e5bdb4..d588ac3bc5f 100644 --- a/src/port/snprintf.c +++ b/src/port/snprintf.c @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * 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" @@ -99,6 +99,7 @@ #undef vsnprintf #undef snprintf #undef sprintf +#undef vfprintf #undef fprintf #undef printf @@ -209,7 +210,7 @@ pg_sprintf(char *str, const char *fmt,...) return len; } -static int +int pg_vfprintf(FILE *stream, const char *fmt, va_list args) { PrintfTarget target;