提交 d1c24460 编写于 作者: T Tom Lane

Fix cast-away-const problem as well as bogus calculation of required buffer size.

上级 66bb74db
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.45 2008/12/15 15:34:07 meskes Exp $ */
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/misc.c,v 1.46 2008/12/15 19:07:48 tgl Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
......@@ -242,31 +242,36 @@ ecpg_log(const char *format,...)
{
va_list ap;
struct sqlca_t *sqlca = ECPGget_sqlca();
int bufsize = strlen(format) + 100;
char *f = (char *) malloc(bufsize),
*intl_format;
const char *intl_format;
int bufsize;
char *fmt;
if (!simple_debug || f == NULL)
if (!simple_debug)
return;
/* internationalize the error message string */
intl_format = ecpg_gettext(format);
/*
* regression tests set this environment variable to get the same
* output for every run.
* Insert PID into the format, unless ecpg_internal_regression_mode is
* set (regression tests want unchanging output).
*/
bufsize = strlen(intl_format) + 100;
fmt = (char *) malloc(bufsize);
if (fmt == NULL)
return;
if (ecpg_internal_regression_mode)
snprintf(f, bufsize, "[NO_PID]: %s", intl_format);
snprintf(fmt, bufsize, "[NO_PID]: %s", intl_format);
else
snprintf(f, bufsize, "[%d]: %s", (int) getpid(), intl_format);
snprintf(fmt, bufsize, "[%d]: %s", (int) getpid(), intl_format);
#ifdef ENABLE_THREAD_SAFETY
pthread_mutex_lock(&debug_mutex);
#endif
va_start(ap, format);
vfprintf(debugstream, f, ap);
vfprintf(debugstream, fmt, ap);
va_end(ap);
/* dump out internal sqlca variables */
......@@ -280,7 +285,7 @@ ecpg_log(const char *format,...)
pthread_mutex_unlock(&debug_mutex);
#endif
free(f);
free(fmt);
}
void
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册