mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
Fix memory allocation/copy mistakes.
The previous code was allocating more memory and copying more data than
necessary because it specified the wrong PgStat_KindInfo member as the
size argument for MemoryContextAlloc and memcpy, respectively.
Although these issues exist since 5891c7a8e
, there have been no reports
from the field. So for now, it seems sufficient to fix them in master.
Author: Etsuro Fujita <etsuro.fujita@gmail.com>
Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Reviewed-by: Gurjeet Singh <gurjeet@singh.im>
Discussion: https://postgr.es/m/CAPmGK15eTRCZTnfgQ4EuBNo%3DQLYGFEbXS_7m2dXqtkcT7L8qrQ%40mail.gmail.com
This commit is contained in:
@ -1187,7 +1187,7 @@ pgstat_build_snapshot(void)
|
||||
Assert(!found);
|
||||
|
||||
entry->data = MemoryContextAlloc(pgStatLocal.snapshot.context,
|
||||
kind_info->shared_size);
|
||||
pgstat_get_entry_len(kind));
|
||||
|
||||
/*
|
||||
* Acquire the LWLock directly instead of using
|
||||
@ -1196,7 +1196,7 @@ pgstat_build_snapshot(void)
|
||||
LWLockAcquire(&stats_data->lock, LW_SHARED);
|
||||
memcpy(entry->data,
|
||||
pgstat_get_entry_data(kind, stats_data),
|
||||
kind_info->shared_size);
|
||||
pgstat_get_entry_len(kind));
|
||||
LWLockRelease(&stats_data->lock);
|
||||
}
|
||||
dshash_seq_term(&hstat);
|
||||
|
Reference in New Issue
Block a user