diff options
author | Martin Willi <martin@revosec.ch> | 2010-08-11 10:51:40 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-08-11 10:52:59 +0200 |
commit | aea735ef63b809d5c50e058f164cea362fe3893c (patch) | |
tree | 04d4afb944dd610207fb6e6ed1694646258d4238 /src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c | |
parent | 10a2e09b55dba63e0dfe3023e7dc85751b0f2ee6 (diff) | |
download | strongswan-aea735ef63b809d5c50e058f164cea362fe3893c.tar.bz2 strongswan-aea735ef63b809d5c50e058f164cea362fe3893c.tar.xz |
Discard a packet that exceeds the receive buffer
Diffstat (limited to 'src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c')
-rw-r--r-- | src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c b/src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c index 42921d6d9..35fbb3afd 100644 --- a/src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c +++ b/src/libcharon/plugins/socket_dynamic/socket_dynamic_socket.c @@ -229,6 +229,11 @@ static packet_t *receive_packet(private_socket_dynamic_socket_t *this, DBG1(DBG_NET, "error reading socket: %s", strerror(errno)); return NULL; } + if (msg.msg_flags & MSG_TRUNC) + { + DBG1(DBG_NET, "receive buffer too small, packet discarded"); + return NULL; + } DBG3(DBG_NET, "received packet %b", buffer, len); if (len < MARKER_LEN) |