diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index d0ccc909692..9ce86416cef 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -1978,6 +1978,13 @@ ProcessStartupPacket(Port *port, bool SSLdone) 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;