From: Alvaro Herrera Date: Fri, 15 Jun 2018 19:00:41 +0000 (-0400) Subject: Fix off-by-one bug in XactLogCommitRecord X-Git-Tag: REL_11_BETA2~53 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ff03112bdc70541382b39fa4e36b9a9ad93b4b73;p=postgresql Fix off-by-one bug in XactLogCommitRecord Commit 1eb6d6527aae introduced zeroed alignment bytes in the GID field of commit/abort WAL records. Fixup commit cf5a1890592b later changed that representation into a regular cstring with a single terminating zero byte, but it also introduced an off-by-one mistake. Fix that. Author: Nikhil Sontakke Reported-by: Nikhil Sontakke Discussion: https://postgr.es/m/CAMGcDxey6dG1DP34_tJMoWPcp5sPJUAL4K5CayUUXLQSx2GQpA@mail.gmail.com --- diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index f4e5ea84b9..b51eeb087e 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -5365,7 +5365,7 @@ XactLogCommitRecord(TimestampTz commit_time, { XLogRegisterData((char *) (&xl_twophase), sizeof(xl_xact_twophase)); if (xl_xinfo.xinfo & XACT_XINFO_HAS_GID) - XLogRegisterData((char *) twophase_gid, strlen(twophase_gid)); + XLogRegisterData((char *) twophase_gid, strlen(twophase_gid) + 1); } if (xl_xinfo.xinfo & XACT_XINFO_HAS_ORIGIN)