Fix memory overrun while setting ps status
This commit is contained in:
parent
18c3000286
commit
d31ff14ed8
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user