]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
examples/sessioninfo: cast printf string mask length to int
authorViktor Szakats <commit@vsz.me>
Tue, 7 Oct 2025 18:30:06 +0000 (20:30 +0200)
committerViktor Szakats <commit@vsz.me>
Tue, 7 Oct 2025 19:01:45 +0000 (21:01 +0200)
Found via `-Wformat-signedness`:
```
docs/examples/sessioninfo.c: In function 'wrfu':
docs/examples/sessioninfo.c:75:53: error: field precision specifier '.*' expects argument of type 'int', but argument 4 has type 'unsigned int' [-Werror=format=]
  fprintf(stderr, "Certificate #%u: %.*s", i, dn.size, dn.data);
                                      ^
```
Ref: https://github.com/curl/curl/actions/runs/18320729052/job/52172864438?pr=18343#step:13:30
Ref: https://github.com/curl/curl/actions/runs/18320729095/job/52172886899?pr=18343#step:19:27

Also:
- drop unnecessary parenthesis.
- scope variables.

Ref: #18343
Closes #18918

docs/examples/sessioninfo.c

index b9b3a3c46296dad17cc695d47e451d59a134e507..ed5f0e9e292df661e030ba824f9009a0cc6fc742 100644 (file)
@@ -46,8 +46,6 @@ static CURL *curl;
 static size_t wrfu(void *ptr, size_t size, size_t nmemb, void *stream)
 {
   const struct curl_tlssessioninfo *info;
-  unsigned int cert_list_size;
-  const gnutls_datum_t *chainp;
   CURLcode res;
 
   (void)stream;
@@ -56,11 +54,14 @@ static size_t wrfu(void *ptr, size_t size, size_t nmemb, void *stream)
   res = curl_easy_getinfo(curl, CURLINFO_TLS_SESSION, &info);
 
   if(!res) {
+    unsigned int cert_list_size;
+    const gnutls_datum_t *chainp;
+
     switch(info->backend) {
     case CURLSSLBACKEND_GNUTLS:
       /* info->internals is now the gnutls_session_t */
       chainp = gnutls_certificate_get_peers(info->internals, &cert_list_size);
-      if((chainp) && (cert_list_size)) {
+      if(chainp && cert_list_size) {
         unsigned int i;
 
         for(i = 0; i < cert_list_size; i++) {
@@ -72,7 +73,8 @@ static size_t wrfu(void *ptr, size_t size, size_t nmemb, void *stream)
                gnutls_x509_crt_import(cert, &chainp[i], GNUTLS_X509_FMT_DER)) {
               if(GNUTLS_E_SUCCESS ==
                  gnutls_x509_crt_print(cert, GNUTLS_CRT_PRINT_FULL, &dn)) {
-                fprintf(stderr, "Certificate #%u: %.*s", i, dn.size, dn.data);
+                fprintf(stderr, "Certificate #%u: %.*s", i,
+                                (int)dn.size, dn.data);
 
                 gnutls_free(dn.data);
               }