postgres.git / summary / log / commit / refs

commit    2ad78a87f018260d4474eee63187e1cc73c9b976
Author:   Fujii Masao <fujii@postgresql.org>
Date:     Fri Jan 15 03:44:17 2021 +0000

    Fix calculation of how much shared memory is required to store a TOC.
    
    Commit ac883ac453 refactored shm_toc_estimate() but changed its calculation
    of shared memory size for TOC incorrectly. Previously this could cause too
    large memory to be allocated.
    
    Back-patch to v11 where the bug was introduced.
    
    Author: Takayuki Tsunakawa
    Discussion: https://postgr.es/m/TYAPR01MB2990BFB73170E2C4921E2C4DFEA80@TYAPR01MB2990.jpnprd01.prod.outlook.com


src/backend/storage/ipc/shm_toc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/storage/ipc/shm_toc.c b/src/backend/storage/ipc/shm_toc.c index 83c7928d882..863b98bf054 100644 --- a/src/backend/storage/ipc/shm_toc.c +++ b/src/backend/storage/ipc/shm_toc.c @@ -265,8 +265,8 @@ shm_toc_estimate(shm_toc_estimator *e) Size sz; sz = offsetof(shm_toc, toc_entry); - sz += add_size(sz, mul_size(e->number_of_keys, sizeof(shm_toc_entry))); - sz += add_size(sz, e->space_for_chunks); + sz = add_size(sz, mul_size(e->number_of_keys, sizeof(shm_toc_entry))); + sz = add_size(sz, e->space_for_chunks); return BUFFERALIGN(sz); } [parent: ccf4e277a4de]