aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_utils.c
diff options
context:
space:
mode:
authorToni <matzeton@googlemail.com>2021-10-26 21:34:01 +0200
committerGitHub <noreply@github.com>2021-10-26 21:34:01 +0200
commit41765efcf8159fd8b9dcf4ceca60fbd37e6e79e8 (patch)
tree2a9f9993e91b4aa4e6f8c5f438d59fb0bc07ab93 /src/lib/ndpi_utils.c
parent5ccc61d1cb3fd328aa9eb22cfc7eb3c020a3761e (diff)
Detect invalid characters in text and set a risk. Fixes #1347. (#1363)
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'src/lib/ndpi_utils.c')
-rw-r--r--src/lib/ndpi_utils.c14
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;
}
/* ******************************************************************** */