Skip to content

Commit 2ad78a8

Browse files
committed
Fix calculation of how much shared memory is required to store a TOC.
Commit ac883ac 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
1 parent ccf4e27 commit 2ad78a8

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/backend/storage/ipc/shm_toc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,8 @@ shm_toc_estimate(shm_toc_estimator *e)
265265
Size sz;
266266

267267
sz = offsetof(shm_toc, toc_entry);
268-
sz += add_size(sz, mul_size(e->number_of_keys, sizeof(shm_toc_entry)));
269-
sz += add_size(sz, e->space_for_chunks);
268+
sz = add_size(sz, mul_size(e->number_of_keys, sizeof(shm_toc_entry)));
269+
sz = add_size(sz, e->space_for_chunks);
270270

271271
return BUFFERALIGN(sz);
272272
}

0 commit comments

Comments
 (0)