postgres.git / summary / log / commit / refs

commit    0d68ad3fc28377d36a3e1dd8b0e2ff47e693e552
Author:   Alexander Korotkov <akorotkov@postgresql.org>
Date:     Mon Apr 15 17:20:43 2019 +0000
First released in: 12.0, 11.3

    Fix division by zero in _bt_vacuum_needs_cleanup()
    
    Checks inside _bt_vacuum_needs_cleanup() allow division by zero to happen when
    metad->btm_last_cleanup_num_heap_tuples == 0.  This commit adjusts the
    expression so that no division by zero might happen.
    
    Reported-by: Piotr Stefaniak
    Discussion: https://postgr.es/m/DB8PR03MB5931C41F7787A95313F08322F22A0%40DB8PR03MB5931.eurprd03.prod.outlook.com
    Reviewed-by: Masahiko Sawada
    Backpatch-through: 11


src/backend/access/nbtree/nbtree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c index e8725fbbe1e..82fc5b6548b 100644 --- a/src/backend/access/nbtree/nbtree.c +++ b/src/backend/access/nbtree/nbtree.c @@ -833,7 +833,7 @@ _bt_vacuum_needs_cleanup(IndexVacuumInfo *info) prev_num_heap_tuples = metad->btm_last_cleanup_num_heap_tuples; if (cleanup_scale_factor <= 0 || - prev_num_heap_tuples < 0 || + prev_num_heap_tuples <= 0 || (info->num_heap_tuples - prev_num_heap_tuples) / prev_num_heap_tuples >= cleanup_scale_factor) result = true; [parent: 51290264346f]