postgres.git / summary / log / commit / refs

commit    93b3d43dc1880b2dafb8ccbb16700dab5cc3c6e7
Author:   Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date:     Wed Apr 11 20:39:49 2018 +0000
First released in: 11.0, 10.4

    Allocate enough shared string memory for stats of auxiliary processes.
    
    This fixes a bug whereby the st_appname, st_clienthostname, and
    st_activity_raw fields for auxiliary processes point beyond the end of
    their respective shared memory segments. As a result, the application_name
    of a backend might show up as the client hostname of an auxiliary process.
    
    Backpatch to v10, where this bug was introduced, when the auxiliary
    processes were added to the array.
    
    Author: Edmund Horner
    Reviewed-by: Michael Paquier
    Discussion: https://www.postgresql.org/message-id/CAMyN-kA7aOJzBmrYFdXcc7Z0NmW%2B5jBaf_m%3D_-77uRNyKC9r%3DA%40mail.gmail.com


src/backend/postmaster/pgstat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index b4d690db963..a121e7fdcd3 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -2650,7 +2650,7 @@ CreateSharedBackendStatus(void) } /* Create or attach to the shared appname buffer */ - size = mul_size(NAMEDATALEN, MaxBackends); + size = mul_size(NAMEDATALEN, NumBackendStatSlots); BackendAppnameBuffer = (char *) ShmemInitStruct("Backend Application Name Buffer", size, &found); @@ -2668,7 +2668,7 @@ CreateSharedBackendStatus(void) } /* Create or attach to the shared client hostname buffer */ - size = mul_size(NAMEDATALEN, MaxBackends); + size = mul_size(NAMEDATALEN, NumBackendStatSlots); BackendClientHostnameBuffer = (char *) ShmemInitStruct("Backend Client Host Name Buffer", size, &found); [parent: 89c2ab340398]