diff options
author | emanuele-f <black.silver@hotmail.it> | 2019-08-29 22:40:29 +0200 |
---|---|---|
committer | emanuele-f <black.silver@hotmail.it> | 2019-08-29 22:40:29 +0200 |
commit | 1bf23dc2a8bd4c432f8def8048d40ddad710fa9d (patch) | |
tree | c7013ce49c018154c8e460cd0d2cda1d973c768a /src | |
parent | fce2cd98178166cd62179cf7f3bde2eccc0a5009 (diff) |
Fix mangled stack by invalid sscanf
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/ndpi_main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index 555a3a2a7..7076fd1ac 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -2655,8 +2655,13 @@ int ndpi_handle_rule(struct ndpi_detection_module_struct *ndpi_mod, } if(is_tcp || is_udp) { - if(sscanf(value, "%u-%u", (u_int32_t *)&range.port_low, (u_int32_t *)&range.port_high) != 2) + u_int p_low, p_high; + + if(sscanf(value, "%u-%u", &p_low, &p_high) == 2) + range.port_low = p_low, range.port_high = p_high; + else range.port_low = range.port_high = atoi(&elem[4]); + if(do_add) addDefaultPort(ndpi_mod, &range, def, 1 /* Custom user proto */, is_tcp ? &ndpi_mod->tcpRoot : &ndpi_mod->udpRoot, __FUNCTION__,__LINE__); |