Skip to content
Snippets Groups Projects
Commit d31ff14e authored by Tatsuo Ishii's avatar Tatsuo Ishii
Browse files

Fix memory overrun while setting ps status

parent 18c30002
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment