[FFmpeg-cvslog] avformat/tls_openssl: fix warnings when openssl is lower version

Jack Lau git at videolan.org
Sat Jun 21 07:23:46 EEST 2025


ffmpeg | branch: master | Jack Lau <jacklau1222 at qq.com> | Sun Jun 15 23:15:45 2025 +0800| [177b92df2b054895f75e3cdd00d68b91a47a243f] | committer: Zhao Zhili

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 at qq.com>
Signed-off-by: Zhao Zhili <zhilizhao at tencent.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=177b92df2b054895f75e3cdd00d68b91a47a243f
---

 libavformat/tls_openssl.c | 8 ++++++++
 1 file changed, 8 insertions(+)

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;



More information about the ffmpeg-cvslog mailing list