diff --git a/src/Cedar/Proto_OpenVPN.c b/src/Cedar/Proto_OpenVPN.c index ca602db1..3b4e38c8 100644 --- a/src/Cedar/Proto_OpenVPN.c +++ b/src/Cedar/Proto_OpenVPN.c @@ -147,7 +147,7 @@ bool OvsProcessData(void *param, TCP_RAW_DATA *in, FIFO *out) payload_size = READ_USHORT(FifoPtr(fifo)); packet_size = payload_size + sizeof(USHORT); - if (payload_size == 0 || packet_size > sizeof(buf)) + if (payload_size == 0 || payload_size > (sizeof(buf) - sizeof(USHORT))) { ret = false; Debug("OvsProcessData(): Invalid payload size: %u bytes\n", payload_size);