diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index a8b3f5000c..6a8cda6332 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -2000,6 +2000,13 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done) if (proto == CANCEL_REQUEST_CODE) { + if (len != sizeof(CancelRequestPacket)) + { + ereport(COMMERROR, + (errcode(ERRCODE_PROTOCOL_VIOLATION), + errmsg("invalid length of startup packet"))); + return STATUS_ERROR; + } processCancelRequest(port, buf); /* Not really an error, but we don't want to proceed further */ return STATUS_ERROR;