Re: [FFmpeg-devel] [PATCH 1/4] lavf/tls_openssl: silence warning on OpenSSL 1.1 and later

2019-01-17 Thread Nicolas George
Rodger Combs (12019-01-17):
> CRYPTO_get_locking_callback is a macro returning NULL on 1.1 and
> later. This triggers -Wtautological-pointer-compare ("comparison of
> function 'openssl_lock' equal to a null pointer is always false"),
> which suggests "prefix with the address-of operator to silence this
> warning", so I did that. We could alternately wrap this code in an
> OpenSSL version check, but this seemed easier.

Urgh. Somebody is to blame for that ugliness, but certainly not you. If
it gets in, I suggest you add a comment to explain that.

But this is worrying: elsewhere in the code,
CRYPTO_get_locking_callback() is tested and an array is mallocated if it
is null: that looks like a leak.

I think part of that code needs to be changed to test the array itself
instead of the callbacks.

Regards,

-- 
  Nicolas George


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 1/4] lavf/tls_openssl: silence warning on OpenSSL 1.1 and later

2019-01-17 Thread Rodger Combs


> On Jan 17, 2019, at 03:12, Nicolas George  wrote:
> 
> Signed PGP part
> Rodger Combs (12019-01-17):
>> ---
>> libavformat/tls_openssl.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
>> index 7ae71bdaf3..faa5b8636e 100644
>> --- a/libavformat/tls_openssl.c
>> +++ b/libavformat/tls_openssl.c
>> @@ -102,7 +102,7 @@ void ff_openssl_deinit(void)
>> openssl_init--;
>> if (!openssl_init) {
>> #if HAVE_THREADS
> 
>> -if (CRYPTO_get_locking_callback() == openssl_lock) {
>> +if (CRYPTO_get_locking_callback() == _lock) {
> 
> Using the & operator on a function seems strange. What warnings is it
> supposed to fix, and why?

CRYPTO_get_locking_callback is a macro returning NULL on 1.1 and later. This 
triggers -Wtautological-pointer-compare ("comparison of function 'openssl_lock' 
equal to a null pointer is always false"), which suggests "prefix with the 
address-of operator to silence this warning", so I did that. We could 
alternately wrap this code in an OpenSSL version check, but this seemed easier.

> 
>> int i;
>> CRYPTO_set_locking_callback(NULL);
>> for (i = 0; i < CRYPTO_num_locks(); i++)
> 
> Regards,
> 
> --
>  Nicolas George
> 
> 



signature.asc
Description: Message signed with OpenPGP
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 1/4] lavf/tls_openssl: silence warning on OpenSSL 1.1 and later

2019-01-17 Thread Nicolas George
Rodger Combs (12019-01-17):
> ---
>  libavformat/tls_openssl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
> index 7ae71bdaf3..faa5b8636e 100644
> --- a/libavformat/tls_openssl.c
> +++ b/libavformat/tls_openssl.c
> @@ -102,7 +102,7 @@ void ff_openssl_deinit(void)
>  openssl_init--;
>  if (!openssl_init) {
>  #if HAVE_THREADS

> -if (CRYPTO_get_locking_callback() == openssl_lock) {
> +if (CRYPTO_get_locking_callback() == _lock) {

Using the & operator on a function seems strange. What warnings is it
supposed to fix, and why?

>  int i;
>  CRYPTO_set_locking_callback(NULL);
>  for (i = 0; i < CRYPTO_num_locks(); i++)

Regards,

-- 
  Nicolas George


signature.asc
Description: PGP signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 1/4] lavf/tls_openssl: silence warning on OpenSSL 1.1 and later

2019-01-17 Thread Rodger Combs
---
 libavformat/tls_openssl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
index 7ae71bdaf3..faa5b8636e 100644
--- a/libavformat/tls_openssl.c
+++ b/libavformat/tls_openssl.c
@@ -102,7 +102,7 @@ void ff_openssl_deinit(void)
 openssl_init--;
 if (!openssl_init) {
 #if HAVE_THREADS
-if (CRYPTO_get_locking_callback() == openssl_lock) {
+if (CRYPTO_get_locking_callback() == _lock) {
 int i;
 CRYPTO_set_locking_callback(NULL);
 for (i = 0; i < CRYPTO_num_locks(); i++)
-- 
2.19.1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel