[124891] trunk/dports/security/certsync/files
Revision: 124891 https://trac.macports.org/changeset/124891 Author: cal@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;
participants (1)
-
cal@macports.org