Commit 809ae06a authored by Marc G. Fournier's avatar Marc G. Fournier

Patch for:

The following patch to src/backend/libpq/pqpacket.c provides additional
checking for bad packet length data. It was tested with the Linux telnet
client, with netcat using the numbers.txt and by dumping random numbers
into the port.

Patch by: Alvaro Martinez Echevarria <alvaro@lander.es>
parent d937b4ef
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/Attic/pqpacket.c,v 1.2 1996/11/06 08:48:31 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/libpq/Attic/pqpacket.c,v 1.3 1997/02/13 08:06:36 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -124,6 +124,22 @@ PacketReceive(Port *port, /* receive port */
return(STATUS_NOT_DONE);
}
} else {
/*
* This is an attempt to shield the Postmaster
* from mallicious attacks by placing tighter
* restrictions on the reported packet length.
*
* Check for negative packet length
*/
if ((buf->len) <= 0) {
return(STATUS_INVALID);
}
/*
* Check for oversize packet
*/
if ((ntohl(buf->len)) > max_size) {
return(STATUS_INVALID);
}
/*
* great. got the header. now get the true length (including
* header size).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment