diff options
-rw-r--r-- | src/backend/postmaster/postmaster.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index d1e9ad2ec4a..0a33479efdd 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -2075,6 +2075,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; |