aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/radius.c
diff options
context:
space:
mode:
authorDaniele De Lorenzi <daniele.delorenzi@fastnetserv.net>2019-04-02 15:49:54 +0200
committerGitHub <noreply@github.com>2019-04-02 15:49:54 +0200
commite27022b69886a327205dcdd166d7ccef1d02bcd9 (patch)
tree8e7e1aa15bdff1f152befbe4c6c205e47dcd26e6 /src/lib/protocols/radius.c
parentc51405e99bae3217545fa34386987b839a8c68a6 (diff)
parent153c77c2cd28d52d6b459263dea3ce988ceccd3c (diff)
Merge pull request #11 from ntop/dev
Add all dev branch modifications
Diffstat (limited to 'src/lib/protocols/radius.c')
-rw-r--r--src/lib/protocols/radius.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/protocols/radius.c b/src/lib/protocols/radius.c
index 1c85f48d7..209e71177 100644
--- a/src/lib/protocols/radius.c
+++ b/src/lib/protocols/radius.c
@@ -39,10 +39,13 @@ static void ndpi_check_radius(struct ndpi_detection_module_struct *ndpi_struct,
if(packet->udp != NULL) {
struct radius_header *h = (struct radius_header*)packet->payload;
+ /* RFC2865: The minimum length is 20 and maximum length is 4096. */
+ if((payload_len < 20) || (payload_len > 4096))
+ return;
if((payload_len > sizeof(struct radius_header))
&& (h->code > 0)
- && (h->code <= 5)
+ && (h->code <= 13)
&& (ntohs(h->len) == payload_len)) {
NDPI_LOG_INFO(ndpi_struct, "Found radius\n");
ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_RADIUS, NDPI_PROTOCOL_UNKNOWN);