diff options
author | Jack Lau <jacklau1222@qq.com> | 2025-06-15 23:15:45 +0800 |
---|---|---|
committer | Zhao Zhili <zhilizhao@tencent.com> | 2025-06-21 12:01:14 +0800 |
commit | 177b92df2b054895f75e3cdd00d68b91a47a243f (patch) | |
tree | e098bffc30e4fcd59a9dcd3a9183c2b3d0b21be0 /libavformat/tls_openssl.c | |
parent | 64e6f5d5fa2d78ed5653bea46276099c9e8116a8 (diff) | |
download | ffmpeg-177b92df2b054895f75e3cdd00d68b91a47a243f.tar.gz |
avformat/tls_openssl: fix warnings when openssl is lower version
api doc: https://docs.openssl.org/1.0.2/man3/BIO_s_mem
In higher versions (openssl 1.0.2 and higher),
the function signature is BIO *BIO_new_mem_buf(const void *buf, int len),
so passing a const string doesn't cause an warnings.
However, in lower versions of OpenSSL,
the function signature becomes BIO *BIO_new_mem_buf(void *buf, int len),
which leads to warnings.
OpenSSL guarantees that it will not modify the string,
so it's safe to cast the pem_str to (void *) to avoid this warning.
Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
Diffstat (limited to 'libavformat/tls_openssl.c')
-rw-r--r-- | libavformat/tls_openssl.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c index 86e8935fee..2a3905891d 100644 --- a/libavformat/tls_openssl.c +++ b/libavformat/tls_openssl.c @@ -415,7 +415,11 @@ error: */ static EVP_PKEY *pkey_from_pem_string(const char *pem_str, int is_priv) { +#if OPENSSL_VERSION_NUMBER < 0x10002000L /* OpenSSL 1.0.2 */ + BIO *mem = BIO_new_mem_buf((void *)pem_str, -1); +#else BIO *mem = BIO_new_mem_buf(pem_str, -1); +#endif if (!mem) { av_log(NULL, AV_LOG_ERROR, "BIO_new_mem_buf failed\n"); return NULL; @@ -445,7 +449,11 @@ static EVP_PKEY *pkey_from_pem_string(const char *pem_str, int is_priv) */ static X509 *cert_from_pem_string(const char *pem_str) { +#if OPENSSL_VERSION_NUMBER < 0x10002000L /* OpenSSL 1.0.2 */ + BIO *mem = BIO_new_mem_buf((void *)pem_str, -1); +#else BIO *mem = BIO_new_mem_buf(pem_str, -1); +#endif if (!mem) { av_log(NULL, AV_LOG_ERROR, "BIO_new_mem_buf failed\n"); return NULL; |