diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2021-10-26 13:16:23 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2021-10-26 20:15:46 +0200 |
commit | 186e89a7330215da323335d2416a1e6e5acdf994 (patch) | |
tree | 2a9f9993e91b4aa4e6f8c5f438d59fb0bc07ab93 /src/lib/ndpi_utils.c | |
parent | 5ccc61d1cb3fd328aa9eb22cfc7eb3c020a3761e (diff) |
Detect invalid characters in text and set a risk. Fixes #1347.add/invalid-chars-detection-in-text
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'src/lib/ndpi_utils.c')
-rw-r--r-- | src/lib/ndpi_utils.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c index 602e4c145..76b427e87 100644 --- a/src/lib/ndpi_utils.c +++ b/src/lib/ndpi_utils.c @@ -1800,7 +1800,10 @@ const char* ndpi_risk2str(ndpi_risk_enum risk) { case NDPI_DNS_FRAGMENTED: return("Fragmented DNS message"); - + + case NDPI_INVALID_CHARACTERS: + return("Text contains non-printable characters"); + default: snprintf(buf, sizeof(buf), "%d", (int)risk); return(buf); @@ -2140,14 +2143,17 @@ void ndpi_set_risk(struct ndpi_detection_module_struct *ndpi_str, /* ******************************************************************** */ -int ndpi_is_printable_string(char const * const str, size_t len) { +int ndpi_is_printable_string(char * const str, size_t len) { + int retval = 1; + for (size_t i = 0; i < len; ++i) { if (ndpi_isprint(str[i]) == 0) { - return 0; + str[i] = '?'; + retval = 0; } } - return 1; + return retval; } /* ******************************************************************** */ |