[124891] trunk/dports/security/certsync/files

cal at macports.org cal at macports.org
Sat Aug 30 03:49:53 PDT 2014


Revision: 124891
          https://trac.macports.org/changeset/124891
Author:   cal at macports.org
Date:     2014-08-30 03:49:53 -0700 (Sat, 30 Aug 2014)
Log Message:
-----------
certsync: Fix warnings and potential crash on Tiger

https://lists.macosforge.org/pipermail/macports-dev/2014-August/027807.html

Modified Paths:
--------------
    trunk/dports/security/certsync/files/certsync.m
    trunk/dports/security/certsync/files/compat.h

Modified: trunk/dports/security/certsync/files/certsync.m
===================================================================
--- trunk/dports/security/certsync/files/certsync.m	2014-08-30 10:36:35 UTC (rev 124890)
+++ trunk/dports/security/certsync/files/certsync.m	2014-08-30 10:49:53 UTC (rev 124891)
@@ -403,8 +403,14 @@
         /* Set the keychain preference domain to user, this causes
          * ValidateSystemTrust to use the user's keychain */
         if ((err = SecKeychainSetPreferenceDomain(kSecPreferencesDomainUser)) != errSecSuccess) {
-            CFStringRef errMsg = PLCFAutorelease(SecCopyErrorMessageString(err, NULL));
-            nsfprintf(stderr, @"Failed to set keychain preference domain: %@\n", errMsg);
+            if (SecCopyErrorMessageString != NULL) {
+                /* >= 10.5 */
+                CFStringRef errMsg = PLCFAutorelease(SecCopyErrorMessageString(err, NULL));
+                nsfprintf(stderr, @"Failed to set keychain preference domain: %@\n", errMsg);
+            } else {
+                /* <= 10.4 */
+                nsfprintf(stderr, @"Failed to set keychain preference domain: %d\n", err);
+            }
 
             [pool release];
             return EXIT_FAILURE;
@@ -423,8 +429,14 @@
     /* Admin & System */
     /* Causes ValidateSystemTrust to ignore the user's keychain */
     if ((err = SecKeychainSetPreferenceDomain(kSecPreferencesDomainSystem)) != errSecSuccess) {
-        CFStringRef errMsg = PLCFAutorelease(SecCopyErrorMessageString(err, NULL));
-        nsfprintf(stderr, @"Failed to set keychain preference domain: %@\n", errMsg);
+        if (SecCopyErrorMessageString != NULL) {
+            /* >= 10.5 */
+            CFStringRef errMsg = PLCFAutorelease(SecCopyErrorMessageString(err, NULL));
+            nsfprintf(stderr, @"Failed to set keychain preference domain: %@\n", errMsg);
+        } else {
+            /* <= 10.4 */
+            nsfprintf(stderr, @"Failed to set keychain preference domain: %d\n", err);
+        }
 
         [pool release];
         return EXIT_FAILURE;

Modified: trunk/dports/security/certsync/files/compat.h
===================================================================
--- trunk/dports/security/certsync/files/compat.h	2014-08-30 10:36:35 UTC (rev 124890)
+++ trunk/dports/security/certsync/files/compat.h	2014-08-30 10:49:53 UTC (rev 124891)
@@ -54,6 +54,13 @@
     /* SecTrustSettingsCopyCertificates() was added in 10.5 */
     extern OSStatus SecTrustSettingsCopyCertificates (SecTrustSettingsDomain domain, CFArrayRef *certArray) __attribute__((weak_import));
     #define SecTrustSettingsCopyCertificates ((OSStatus(*)(SecTrustSettingsDomain, CFArrayRef *)) NULL) /* We can't safely weak-link what we don't have */
+
+    /* SecTrustSettingsCopyTrustSettings() was added in 10.5 */
+    extern OSStatus SecTrustSettingsCopyTrustSettings (SecCertificateRef certRef, SecTrustSettingsDomain domain, CFArrayRef *trustSettings) __attribute__((weak_import));
+    #define SecTrustSettingsCopyTrustSettings ((OSStatus(*)(SecCertificateRef, SecTrustSettingsDomain, CFArrayRef *)) NULL) /* We can't safely weak-link what we don't have */
+
+    extern CFStringRef SecCopyErrorMessageString (OSStatus status, void *reserved) __attribute__((weak_import));
+    #define SecCopyErrorMessageString ((CFStringRef(*)(OSStatus, void *)) NULL) /* We can't safely weak-link what we don't have */
     
     /* CFError was added in 10.5 */
     typedef CFTypeRef CFErrorRef;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140830/0bee9d42/attachment.html>


More information about the macports-changes mailing list