diff options
author | Toni <matzeton@googlemail.com> | 2020-11-26 19:46:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-26 19:46:31 +0100 |
commit | daa1c8ef8c8a61899bf3d311f7efa11c090bfe70 (patch) | |
tree | 01913f51e8c9b5421fde40c220cb8bb37cb57a03 | |
parent | 7437ecaab02a893ae9fb43ca193f0d184ed5a3ea (diff) |
Fix/overflow and libgerror check (#1068)
* Fixed stack overflow caused by missing buffer space for the trailing \0 added by sprintf()
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
* Remove the autoconf cache value from the previous and failed check before checking again.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | configure.seed | 1 | ||||
-rw-r--r-- | src/lib/ndpi_utils.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/configure.seed b/configure.seed index ad29dd778..1dffd3bac 100644 --- a/configure.seed +++ b/configure.seed @@ -184,6 +184,7 @@ AC_ARG_ENABLE([gcrypt], if test "x$ac_cv_lib_gcrypt_gcry_cipher_checktag" = xyes; then : ADDITIONAL_LIBS="${ADDITIONAL_LIBS} -lgcrypt" else + $as_unset ac_cv_lib_gcrypt_gcry_cipher_checktag AC_CHECK_LIB(gpg-error, gpg_strerror_r) AC_CHECK_LIB(gcrypt, gcry_cipher_checktag) if test "x$ac_cv_lib_gcrypt_gcry_cipher_checktag" = xyes -a "x$ac_cv_lib_gpg_error_gpg_strerror_r" = xyes; then : diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c index edf7ebd07..53f8019dd 100644 --- a/src/lib/ndpi_utils.c +++ b/src/lib/ndpi_utils.c @@ -1139,7 +1139,7 @@ int ndpi_dpi2json(struct ndpi_detection_module_struct *ndpi_struct, case NDPI_PROTOCOL_BITTORRENT: { u_int i, j, n = 0; - char bittorent_hash[32]; + char bittorent_hash[sizeof(flow->protos.bittorrent.hash)*2+1]; for(i=0, j = 0; j < sizeof(bittorent_hash)-1; i++) { sprintf(&bittorent_hash[j], "%02x", |