Skip to content

Commit 01c3adc

Browse files
author
Amit Kapila
committed
Fix potential buffer overruns in proto.c.
Prevent potential buffer overruns when using strcpy to gid buffer. This has been introduced by commit a8fd13c. Reported-by: Tom Lane as per coverity Author: Peter Smith Reviewed-by: Amit Kapila Discussion: https://www.postgresql.org/message-id/161029.1626639923%40sss.pgh.pa.us
1 parent dd49899 commit 01c3adc

File tree

1 file changed

+4
-4
lines changed
  • src/backend/replication/logical

1 file changed

+4
-4
lines changed

src/backend/replication/logical/proto.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ logicalrep_read_begin_prepare(StringInfo in, LogicalRepPreparedTxnData *begin_da
141141
begin_data->xid = pq_getmsgint(in, 4);
142142

143143
/* read gid (copy it into a pre-allocated buffer) */
144-
strcpy(begin_data->gid, pq_getmsgstring(in));
144+
strlcpy(begin_data->gid, pq_getmsgstring(in), sizeof(begin_data->gid));
145145
}
146146

147147
/*
@@ -198,7 +198,7 @@ logicalrep_read_prepare(StringInfo in, LogicalRepPreparedTxnData *prepare_data)
198198
prepare_data->xid = pq_getmsgint(in, 4);
199199

200200
/* read gid (copy it into a pre-allocated buffer) */
201-
strcpy(prepare_data->gid, pq_getmsgstring(in));
201+
strlcpy(prepare_data->gid, pq_getmsgstring(in), sizeof(prepare_data->gid));
202202
}
203203

204204
/*
@@ -254,7 +254,7 @@ logicalrep_read_commit_prepared(StringInfo in, LogicalRepCommitPreparedTxnData *
254254
prepare_data->xid = pq_getmsgint(in, 4);
255255

256256
/* read gid (copy it into a pre-allocated buffer) */
257-
strcpy(prepare_data->gid, pq_getmsgstring(in));
257+
strlcpy(prepare_data->gid, pq_getmsgstring(in), sizeof(prepare_data->gid));
258258
}
259259

260260
/*
@@ -314,7 +314,7 @@ logicalrep_read_rollback_prepared(StringInfo in,
314314
rollback_data->xid = pq_getmsgint(in, 4);
315315

316316
/* read gid (copy it into a pre-allocated buffer) */
317-
strcpy(rollback_data->gid, pq_getmsgstring(in));
317+
strlcpy(rollback_data->gid, pq_getmsgstring(in), sizeof(rollback_data->gid));
318318
}
319319

320320
/*

0 commit comments

Comments
 (0)