From 75472f9c5a2806b3c0d9ef18126b83dc255c3482 Mon Sep 17 00:00:00 2001 From: Hayato Kuroda Date: Fri, 11 Sep 2026 11:31:51 +0900 Subject: [PATCH] Use pg_paser_lsn in libpqwalreceiver --- .../replication/libpqwalreceiver/libpqwalreceiver.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c index 029990d9fce..df47ae535ce 100644 --- a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c +++ b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c @@ -23,6 +23,7 @@ #include #include "common/connect.h" +#include "common/pg_parse_lsn.h" #include "funcapi.h" #include "libpq-fe.h" #include "libpq/libpq-be-fe-helpers.h" @@ -458,15 +459,11 @@ libpqrcv_identify_system(WalReceiverConn *conn, TimeLineID *primary_tli, /* Column 2 is the server's current WAL flush position */ if (server_lsn) { - uint32 hi, - lo; - - if (sscanf(PQgetvalue(res, 0, 2), "%X/%X", &hi, &lo) != 2) + if (!pg_parse_lsn(PQgetvalue(res, 0, 2), server_lsn)) ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("could not parse WAL location \"%s\"", PQgetvalue(res, 0, 2)))); - *server_lsn = ((uint64) hi) << 32 | lo; } PQclear(res); -- 2.52.0