Commit d31ff14e authored by Tatsuo Ishii's avatar Tatsuo Ishii

Fix memory overrun while setting ps status

parent 18c30002
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.38 1999/10/08 04:28:48 momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/init/globals.c,v 1.39 1999/12/10 10:29:01 ishii Exp $
*
* NOTES
* Globals used all over the place should be declared here and not
......@@ -88,6 +88,13 @@ char *IndexedCatalogNames[] = {
};
/*
* ps status buffer
*/
#ifndef linux
char Ps_status_buffer[1024];
#endif
/* ----------------
* we just do a linear search now so there's no requirement that the list
* be ordered. The list is so small it shouldn't make much difference.
......
......@@ -48,10 +48,9 @@ char *ps_status_buffer = NULL
#else /* !linux */
extern const char **ps_status;
extern char Ps_status_buffer[];
#define PS_DEFINE_BUFFER \
const char **ps_status = NULL
#define PS_DEFINE_BUFFER
#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname) \
{ \
......@@ -61,18 +60,18 @@ const char **ps_status = NULL
argv[1] = hostname; \
argv[2] = username; \
argv[3] = dbname; \
ps_status = (const char **)&argv[4]; \
for (i = 4; i < argc; i++) \
argv[4] = Ps_status_buffer; \
for (i = 5; i < argc; i++) \
argv[i] = ""; /* blank them */ \
}
#define PS_CLEAR_STATUS() \
{ if (ps_status) *ps_status = ""; }
{ Ps_status_buffer[0] = '\0'; }
#define PS_SET_STATUS(status) \
{ if (ps_status) *ps_status = (status); }
{ strcpy(Ps_status_buffer, (status)); }
#define PS_STATUS (ps_status ? *ps_status : "")
#define PS_STATUS (Ps_status_buffer)
#endif
#ifdef NO_PS_STATUS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment