X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/79b9da22a1f4b26279940d285c1bc28ce4e99252..refs/heads/master:/OSX/libsecurity_codesigning/lib/notarization.cpp?ds=inline diff --git a/OSX/libsecurity_codesigning/lib/notarization.cpp b/OSX/libsecurity_codesigning/lib/notarization.cpp index 91a2c15f..6587dccd 100644 --- a/OSX/libsecurity_codesigning/lib/notarization.cpp +++ b/OSX/libsecurity_codesigning/lib/notarization.cpp @@ -22,7 +22,7 @@ */ #include "SecAssessment.h" #include "notarization.h" -#include "unix++.h" +#include typedef struct __attribute__((packed)) _package_trailer { uint8_t magic[4]; @@ -49,9 +49,9 @@ registerStapledTicketWithSystem(CFDataRef data) secinfo("notarization", "Registering stapled ticket with system"); #if TARGET_OS_OSX - CFErrorRef error = NULL; - if (!SecAssessmentTicketRegister(data, &error)) { - secerror("Error registering stapled ticket: %@", data); + CFRef error; + if (!SecAssessmentTicketRegister(data, &error.aref())) { + secerror("Error registering stapled ticket: %@", error.get()); } #endif // TARGET_OS_OSX } @@ -208,7 +208,7 @@ registerStapledTicketInPackage(const std::string& path) goto lb_exit; } - data = CFDataCreateWithBytesNoCopy(NULL, ticketData, trailer.length, NULL); + data.take(makeCFDataMalloc(ticketData, trailer.length)); if (data.get() == NULL) { secerror("unable to create cfdata for notarization"); goto lb_exit; @@ -221,9 +221,6 @@ lb_exit: if (fd) { close(fd); } - if (ticketData) { - free(ticketData); - } } void @@ -277,7 +274,7 @@ registerStapledTicketInBundle(const std::string& path) goto lb_exit; } - data = CFDataCreateWithBytesNoCopy(NULL, ticketData, ticketLength, NULL); + data.take(makeCFDataMalloc(ticketData, ticketLength)); if (data.get() == NULL) { secerror("unable to create cfdata for notarization"); goto lb_exit; @@ -290,9 +287,6 @@ lb_exit: if (fd) { close(fd); } - if (ticketData) { - free(ticketData); - } } void @@ -305,5 +299,15 @@ registerStapledTicketInDMG(CFDataRef ticketData) registerStapledTicketWithSystem(ticketData); } +void +registerStapledTicketInMachO(CFDataRef ticketData) +{ + if (ticketData == NULL) { + return; + } + secinfo("notarization", "successfully found stapled ticket in MachO"); + registerStapledTicketWithSystem(ticketData); +} + } }