mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Fix potential buffer overruns in proto.c.
Prevent potential buffer overruns when using strcpy to gid buffer. This
has been introduced by commit a8fd13cab0
.
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
This commit is contained in:
@ -141,7 +141,7 @@ logicalrep_read_begin_prepare(StringInfo in, LogicalRepPreparedTxnData *begin_da
|
|||||||
begin_data->xid = pq_getmsgint(in, 4);
|
begin_data->xid = pq_getmsgint(in, 4);
|
||||||
|
|
||||||
/* read gid (copy it into a pre-allocated buffer) */
|
/* read gid (copy it into a pre-allocated buffer) */
|
||||||
strcpy(begin_data->gid, pq_getmsgstring(in));
|
strlcpy(begin_data->gid, pq_getmsgstring(in), sizeof(begin_data->gid));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -198,7 +198,7 @@ logicalrep_read_prepare(StringInfo in, LogicalRepPreparedTxnData *prepare_data)
|
|||||||
prepare_data->xid = pq_getmsgint(in, 4);
|
prepare_data->xid = pq_getmsgint(in, 4);
|
||||||
|
|
||||||
/* read gid (copy it into a pre-allocated buffer) */
|
/* read gid (copy it into a pre-allocated buffer) */
|
||||||
strcpy(prepare_data->gid, pq_getmsgstring(in));
|
strlcpy(prepare_data->gid, pq_getmsgstring(in), sizeof(prepare_data->gid));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -254,7 +254,7 @@ logicalrep_read_commit_prepared(StringInfo in, LogicalRepCommitPreparedTxnData *
|
|||||||
prepare_data->xid = pq_getmsgint(in, 4);
|
prepare_data->xid = pq_getmsgint(in, 4);
|
||||||
|
|
||||||
/* read gid (copy it into a pre-allocated buffer) */
|
/* read gid (copy it into a pre-allocated buffer) */
|
||||||
strcpy(prepare_data->gid, pq_getmsgstring(in));
|
strlcpy(prepare_data->gid, pq_getmsgstring(in), sizeof(prepare_data->gid));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -314,7 +314,7 @@ logicalrep_read_rollback_prepared(StringInfo in,
|
|||||||
rollback_data->xid = pq_getmsgint(in, 4);
|
rollback_data->xid = pq_getmsgint(in, 4);
|
||||||
|
|
||||||
/* read gid (copy it into a pre-allocated buffer) */
|
/* read gid (copy it into a pre-allocated buffer) */
|
||||||
strcpy(rollback_data->gid, pq_getmsgstring(in));
|
strlcpy(rollback_data->gid, pq_getmsgstring(in), sizeof(rollback_data->gid));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user