0001-Avoid-possible-overflow-with-ltsGetFreeBlock-functio.patch

application/octet-stream

Filename: 0001-Avoid-possible-overflow-with-ltsGetFreeBlock-functio.patch
Type: application/octet-stream
Part: 0
Message: Avoid a possible overflow (src/backend/utils/sort/logtape.c)

Patch

Format: format-patch
Series: patch 0001
Subject: Avoid possible overflow with ltsGetFreeBlock function
File+
src/backend/utils/sort/logtape.c 1 1
From f7c8ef7f55b64b8d594d1675a7dc183222729bc1 Mon Sep 17 00:00:00 2001
From: Ranier Vilela <ranier.vf@gmail.com>
Date: Thu, 24 Aug 2023 14:02:42 -0300
Subject: [PATCH] Avoid possible overflow with ltsGetFreeBlock function

nFreeBlocks stores the number of free blocks and
your type is *long*.

At Function ltsGetFreeBlock is locally stored in
heapsize wich type is *int*

With Windows both *long* and *int* are 4 bytes.
But with Linux *long* is 8 bytes and *int* are 4 bytes.

Author: Ranier vilela (ranier.vf@gmail.com)
---
 src/backend/utils/sort/logtape.c | 2 +-
 1files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/backend/utils/sort/logtape.c b/src/backend/utils/sort/logtape.c
index 52b8898d5e..f31878bdee 100644
--- a/src/backend/utils/sort/logtape.c
+++ b/src/backend/utils/sort/logtape.c
@@ -372,7 +372,7 @@ ltsGetFreeBlock(LogicalTapeSet *lts)
 {
 	long	   *heap = lts->freeBlocks;
 	long		blocknum;
-	int			heapsize;
+	long		heapsize;
 	long		holeval;
 	unsigned long holepos;
 
-- 
2.32.0.windows.1