From 25d21edf92161d36c7025b038ccd067606dd3116 Mon Sep 17 00:00:00 2001 From: wuyuechuan Date: Mon, 19 Jul 2021 10:20:27 +0800 Subject: [PATCH] unsafe encapsulation of safe function --- src/common/backend/utils/adt/timestamp.cpp | 14 ++++++++++---- src/include/utils/timestamp.h | 6 ------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/common/backend/utils/adt/timestamp.cpp b/src/common/backend/utils/adt/timestamp.cpp index bfb1e37cc..3d15b3db3 100644 --- a/src/common/backend/utils/adt/timestamp.cpp +++ b/src/common/backend/utils/adt/timestamp.cpp @@ -5777,8 +5777,14 @@ void timestamp_CalculateFields(TimestampTz* dt1, TimestampTz* dt2, fsec_t* fsec, void WalReplicationTimestampToString(WalReplicationTimestampInfo *timeStampInfo, TimestampTz nowtime, TimestampTz timeout, TimestampTz lastTimestamp, TimestampTz heartbeat) { - COPY_AND_CHECK_TIMESTAMP(timeStampInfo->nowTimeStamp, MAXTIMESTAMPLEN + 1, nowtime); - COPY_AND_CHECK_TIMESTAMP(timeStampInfo->timeoutStamp, MAXTIMESTAMPLEN + 1, timeout); - COPY_AND_CHECK_TIMESTAMP(timeStampInfo->lastRecStamp, MAXTIMESTAMPLEN + 1, lastTimestamp); - COPY_AND_CHECK_TIMESTAMP(timeStampInfo->heartbeatStamp, MAXTIMESTAMPLEN + 1, heartbeat); + // timestamptz_to_str returns char[MAXTIMESTAMPLEN + 1] + errno_t rc; + rc = memcpy_s(timeStampInfo->nowTimeStamp, MAXTIMESTAMPLEN + 1, timestamptz_to_str(nowtime), MAXTIMESTAMPLEN + 1); + securec_check(rc, "\0", "\0"); + rc = memcpy_s(timeStampInfo->timeoutStamp, MAXTIMESTAMPLEN + 1, timestamptz_to_str(timeout), MAXTIMESTAMPLEN + 1); + securec_check(rc, "\0", "\0"); + rc = memcpy_s(timeStampInfo->lastRecStamp, MAXTIMESTAMPLEN + 1, timestamptz_to_str(lastTimestamp), MAXTIMESTAMPLEN + 1); + securec_check(rc, "\0", "\0"); + rc = memcpy_s(timeStampInfo->heartbeatStamp, MAXTIMESTAMPLEN + 1, timestamptz_to_str(heartbeat), MAXTIMESTAMPLEN + 1); + securec_check(rc, "\0", "\0"); } diff --git a/src/include/utils/timestamp.h b/src/include/utils/timestamp.h index e66a910d0..2e1842eca 100644 --- a/src/include/utils/timestamp.h +++ b/src/include/utils/timestamp.h @@ -24,12 +24,6 @@ #define INTERVAL_TYPMOD(p, r) ((((r)&INTERVAL_RANGE_MASK) << 16) | ((p)&INTERVAL_PRECISION_MASK)) #define INTERVAL_PRECISION(t) ((t) & INTERVAL_PRECISION_MASK) #define INTERVAL_RANGE(t) (((t) >> 16) & INTERVAL_RANGE_MASK) -#define COPY_AND_CHECK_TIMESTAMP(targetTimestamp, size, convertTimeStamp) \ -do { \ - errno_t rc = memcpy_s(targetTimestamp, size, timestamptz_to_str(convertTimeStamp), size); \ - securec_check(rc, "\0", "\0"); \ -} while (0) - #ifndef FRONTEND_PARSER #include "datatype/timestamp.h"