diff --git a/src/common/crypto.c b/src/common/crypto.c index 2cb1c39eb926b241ad8861cb5ffd363f487a2d05..1b45639a7c0388dcb313d2413d2367e8113e5293 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -2496,6 +2496,8 @@ base64_encode(char *dest, size_t destlen, const char *src, size_t srclen, return -1; if (destlen > SIZE_T_CEILING) return -1; + if (enclen > INT_MAX) + return -1; memset(dest, 0, enclen); @@ -2576,7 +2578,7 @@ base64_encode(char *dest, size_t destlen, const char *src, size_t srclen, *d++ = '\0'; /* NUL terminate the output. */ - return enclen; + return (int) enclen; } #undef BASE64_OPENSSL_LINELEN diff --git a/src/test/test_crypto.c b/src/test/test_crypto.c index 299373e2ec81ee57034cbe1e63e666b63f320ff7..7f4aa13ac2bc61d23470080aa4a9a107a46fa555 100644 --- a/src/test/test_crypto.c +++ b/src/test/test_crypto.c @@ -614,7 +614,7 @@ base64_encode_evp(char *dest, char *src, size_t srclen) int len, ret; EVP_EncodeInit(&ctx); - EVP_EncodeUpdate(&ctx, (unsigned char *)dest, &len, s, srclen); + EVP_EncodeUpdate(&ctx, (unsigned char *)dest, &len, s, (int)srclen); EVP_EncodeFinal(&ctx, (unsigned char *)(dest + len), &ret); return ret+ len; }