diff --git a/src/dh.c b/src/dh.c index 0d46c591..997ae852 100644 --- a/src/dh.c +++ b/src/dh.c @@ -45,6 +45,7 @@ #include #include #include +#include #ifndef _WIN32 #include @@ -256,6 +257,10 @@ char *ssh_get_hexa(const unsigned char *what, size_t len) { size_t i; size_t hlen = len * 3; + if (len > (UINT_MAX - 1) / 3) { + return NULL; + } + hexa = malloc(hlen + 1); if (hexa == NULL) { return NULL;