]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Fix compilation on older macOS versions 735/head
authorRose <83477269+AtariDreams@users.noreply.github.com>
Wed, 21 Jun 2023 13:24:04 +0000 (09:24 -0400)
committerRose <83477269+AtariDreams@users.noreply.github.com>
Wed, 21 Jun 2023 13:27:27 +0000 (09:27 -0400)
Older versions of macOS do not support SecTrustCopyCertificateChain, so let's revert back to using SecTrustGetCertificateCount.

Fixes https://github.com/OpenPrinting/cups/issues/715

cups/tls-darwin.c

index fb5caac07162702f287b7c63eb85959f0015a5ce..555d636bcd9d91b6419b1b6ff6f482656e2f876f 100644 (file)
@@ -428,7 +428,10 @@ httpCopyCredentials(
 {
   OSStatus             error;          /* Error code */
   SecTrustRef          peerTrust;      /* Peer trust reference */
+  CFIndex              count;          /* Number of credentials */
+  SecCertificateRef    secCert;        /* Certificate reference */
   CFDataRef            data;           /* Certificate data */
+  CFIndex              i;              /* Looping var */
 
 
   DEBUG_printf(("httpCopyCredentials(http=%p, credentials=%p)", (void *)http, (void *)credentials));
@@ -441,16 +444,15 @@ httpCopyCredentials(
 
   if (!(error = SSLCopyPeerTrust(http->tls, &peerTrust)) && peerTrust)
   {
+    DEBUG_printf(("2httpCopyCredentials: Peer provided %ld certificates.", (long)SecTrustGetCertificateCount(peerTrust)));
+
     if ((*credentials = cupsArrayNew(NULL, NULL)) != NULL)
     {
-      CFArrayRef secArray = SecTrustCopyCertificateChain(peerTrust);
-      CFIndex i, count = CFArrayGetCount(secArray);
+      count = SecTrustGetCertificateCount(peerTrust);
 
-      DEBUG_printf(("2httpCopyCredentials: Peer provided %ld certificates.", (long)count));
-      
       for (i = 0; i < count; i ++)
       {
-    SecCertificateRef secCert = (SecCertificateRef)CFArrayGetValueAtIndex(secArray, i);
+       secCert = SecTrustGetCertificateAtIndex(peerTrust, i);
 
 #ifdef DEBUG
         CFStringRef cf_name = SecCertificateCopySubjectSummary(secCert);
@@ -471,7 +473,6 @@ httpCopyCredentials(
          CFRelease(data);
        }
       }
-      CFRelease(secArray);
     }
 
     CFRelease(peerTrust);