diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/ndpi_api.h | 2 | ||||
-rw-r--r-- | src/lib/ndpi_analyze.c | 3 | ||||
-rw-r--r-- | src/lib/ndpi_hash.c | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h index f834223c6..c7da8d8a9 100644 --- a/src/include/ndpi_api.h +++ b/src/include/ndpi_api.h @@ -1972,7 +1972,7 @@ extern "C" { /* ******************************* */ - u_int32_t ndpi_quick_16_byte_hash(u_int8_t *in_16_bytes_long); + u_int32_t ndpi_quick_16_byte_hash(const u_int8_t *in_16_bytes_long); /* ******************************* */ diff --git a/src/lib/ndpi_analyze.c b/src/lib/ndpi_analyze.c index 06d461561..198aa4f9f 100644 --- a/src/lib/ndpi_analyze.c +++ b/src/lib/ndpi_analyze.c @@ -1729,6 +1729,9 @@ double ndpi_pearson_correlation(u_int32_t *values_a, u_int32_t *values_b, u_int1 variance_a = sum_squared_diff_a / (double)num_values, variance_b = sum_squared_diff_b / (double)num_values; covariance = sum_product_diff / (double)num_values; + if(variance_a == 0.0 || variance_b == 0.0) + return(0.0); + return(covariance / sqrt(variance_a * variance_b)); } diff --git a/src/lib/ndpi_hash.c b/src/lib/ndpi_hash.c index 0a3507d76..c0d653142 100644 --- a/src/lib/ndpi_hash.c +++ b/src/lib/ndpi_hash.c @@ -134,7 +134,7 @@ u_int32_t ndpi_hash_string_len(const char *str, u_int len) { two independent 64-bit linear congruential generators are applied results are mixed, scrambled and cast to 32-bit */ -u_int32_t ndpi_quick_16_byte_hash(u_int8_t *in_16_bytes_long) { +u_int32_t ndpi_quick_16_byte_hash(const u_int8_t *in_16_bytes_long) { u_int64_t a = *(u_int64_t*)(in_16_bytes_long + 0); u_int64_t c = *(u_int64_t*)(in_16_bytes_long + 8); |