Wrong variable type in KeepLogSeg

Started by Kyotaro HORIGUCHIalmost 9 years ago5 messages
#1Kyotaro HORIGUCHI
horiguchi.kyotaro@lab.ntt.co.jp
1 attachment(s)

Hello, I found a variable definition with wrong type
specification in KeepLogSeg, which doesn't harm anything.

static void
KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo)
{
...
/* then check whether slots limit removal further */
if (max_replication_slots > 0 && keep != InvalidXLogRecPtr)
{
XLogRecPtr slotSegNo;

XLByteToSeg(keep, slotSegNo);

slotSegNo should be a XLogSegNo. Both types share the same
intrinsic type so it doesn't harm anything.

This is back-patchable upto 9.4.

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

Attachments:

KeepLogSeg_wrongtype.patchtext/x-patch; charset=us-asciiDownload
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 5016273..8973583 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -9263,7 +9263,7 @@ KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo)
 	/* then check whether slots limit removal further */
 	if (max_replication_slots > 0 && keep != InvalidXLogRecPtr)
 	{
-		XLogRecPtr	slotSegNo;
+		XLogSegNo	slotSegNo;
 
 		XLByteToSeg(keep, slotSegNo);
 
#2Michael Paquier
michael.paquier@gmail.com
In reply to: Kyotaro HORIGUCHI (#1)
Re: Wrong variable type in KeepLogSeg

On Tue, Feb 28, 2017 at 11:17 AM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

slotSegNo should be a XLogSegNo. Both types share the same
intrinsic type so it doesn't harm anything.

Nice catch!
--
Michael

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Kyotaro HORIGUCHI
horiguchi.kyotaro@lab.ntt.co.jp
In reply to: Michael Paquier (#2)
Re: Wrong variable type in KeepLogSeg

At Tue, 28 Feb 2017 12:17:07 +0900, Michael Paquier <michael.paquier@gmail.com> wrote in <CAB7nPqQvBPno0wJe1rK3tFB_m1VNEPX4fV6dOZmddAfMV+KB0Q@mail.gmail.com>

On Tue, Feb 28, 2017 at 11:17 AM, Kyotaro HORIGUCHI
<horiguchi.kyotaro@lab.ntt.co.jp> wrote:

slotSegNo should be a XLogSegNo. Both types share the same
intrinsic type so it doesn't harm anything.

Nice catch!

Thanks!

--
Kyotaro Horiguchi
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#4Magnus Hagander
magnus@hagander.net
In reply to: Kyotaro HORIGUCHI (#1)
Re: Wrong variable type in KeepLogSeg

On Tue, Feb 28, 2017 at 3:17 AM, Kyotaro HORIGUCHI <
horiguchi.kyotaro@lab.ntt.co.jp> wrote:

Hello, I found a variable definition with wrong type
specification in KeepLogSeg, which doesn't harm anything.

static void
KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo)
{
...
/* then check whether slots limit removal further */
if (max_replication_slots > 0 && keep != InvalidXLogRecPtr)
{
XLogRecPtr slotSegNo;

XLByteToSeg(keep, slotSegNo);

slotSegNo should be a XLogSegNo. Both types share the same
intrinsic type so it doesn't harm anything.

This is back-patchable upto 9.4.

Nice catch. Applied and backpatched.

--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/

#5Kyotaro HORIGUCHI
horiguchi.kyotaro@lab.ntt.co.jp
In reply to: Magnus Hagander (#4)
Re: Wrong variable type in KeepLogSeg

At Tue, 28 Feb 2017 12:21:01 +0100, Magnus Hagander <magnus@hagander.net> wrote in <CABUevExG87_5PsnB9cdg+LEkEUMC2_Gm6d_twrTmUbSnsFX+0A@mail.gmail.com>
magnus> > Hello, I found a variable definition with wrong type
magnus> > specification in KeepLogSeg, which doesn't harm anything.
magnus>
magnus> Nice catch. Applied and backpatched.

Thank you for committing.

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers