REF_PRINT: cast pointer to void to avoid warnings
authorDaniel Bevenius <daniel.bevenius@gmail.com>
Thu, 12 Nov 2020 08:51:14 +0000 (09:51 +0100)
committerPauli <paul.dale@oracle.com>
Sun, 15 Nov 2020 23:35:11 +0000 (09:35 +1000)
Currently, when configuring OpenSSL and specifying the --strict-warnings
option there are failures like the following one:

crypto/bio/bio_lib.c: In function 'BIO_up_ref':
include/internal/refcount.h:169:25: error: format '%p' expects argument
of type 'void *', but argument 3 has type 'BIO *'
{aka 'struct bio_st *'} [-Werror=format=]
  169 |         fprintf(stderr, "%p:%4d:%s\n", b, b->references, a)
      |                         ^~~~~~~~~~~~~
crypto/bio/bio_lib.c:185:5:
note: in expansion of macro'REF_PRINT_COUNT'
  185 |     REF_PRINT_COUNT("BIO", a);
      |     ^~~~~~~~~~~~~~~
include/internal/refcount.h:169:27: note: format string is defined here
  169 |         fprintf(stderr, "%p:%4d:%s\n", b, b->references, a)
      |                          ~^
      |                           |
      |                           void *
cc1: all warnings being treated as errors

This commit adds casts to avoid the warnings.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/13389)

crypto/asn1/tasn_utl.c
include/internal/refcount.h

index f7c988ede4837eefa976ce334b7b2e7859a43f39..b455f0705aa6f02332bb24354824840a9d84c69a 100644 (file)
@@ -97,7 +97,7 @@ int asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it)
         if (!CRYPTO_DOWN_REF(lck, &ret, *lock))
             return -1;  /* failed */
 #ifdef REF_PRINT
-        fprintf(stderr, "%p:%4d:%s\n", it, ret, it->sname);
+        fprintf(stderr, "%p:%4d:%s\n", (void*)it, ret, it->sname);
 #endif
         REF_ASSERT_ISNT(ret < 0);
         if (ret == 0) {
index 1d1af772cc6fccf97fc1e38c06619479f5fed731..0c07c42e26d89fd3846ba7441b872831c751eb0f 100644 (file)
@@ -166,7 +166,7 @@ typedef int CRYPTO_REF_COUNT;
 
 # ifdef REF_PRINT
 #  define REF_PRINT_COUNT(a, b) \
-        fprintf(stderr, "%p:%4d:%s\n", b, b->references, a)
+        fprintf(stderr, "%p:%4d:%s\n", (void*)b, b->references, a)
 # else
 #  define REF_PRINT_COUNT(a, b)
 # endif