diff --git a/osxkeychain/osxkeychain_darwin.c b/osxkeychain/osxkeychain_darwin.c index 5b420d0..f84d61e 100644 --- a/osxkeychain/osxkeychain_darwin.c +++ b/osxkeychain/osxkeychain_darwin.c @@ -135,16 +135,20 @@ char * CFStringToCharArr(CFStringRef aString) { } char *keychain_list(char *credsLabel, char *** paths, char *** accts, unsigned int *list_l) { + CFStringRef credsLabelCF = CFStringCreateWithCString(NULL, credsLabel, kCFStringEncodingUTF8); CFMutableDictionaryRef query = CFDictionaryCreateMutable (NULL, 1, NULL, NULL); CFDictionaryAddValue(query, kSecClass, kSecClassInternetPassword); CFDictionaryAddValue(query, kSecReturnAttributes, kCFBooleanTrue); CFDictionaryAddValue(query, kSecMatchLimit, kSecMatchLimitAll); - CFDictionaryAddValue(query, kSecAttrLabel, CFSTR(credsLabel)); + CFDictionaryAddValue(query, kSecAttrLabel, credsLabelCF); //Use this query dictionary CFTypeRef result= NULL; OSStatus status = SecItemCopyMatching( query, &result); + + CFRelease(credsLabelCF); + //Ran a search and store the results in result if (status) { return get_error(status); diff --git a/osxkeychain/osxkeychain_darwin_test.go b/osxkeychain/osxkeychain_darwin_test.go index bbfe1ff..9cfb108 100644 --- a/osxkeychain/osxkeychain_darwin_test.go +++ b/osxkeychain/osxkeychain_darwin_test.go @@ -7,13 +7,13 @@ import ( func TestOSXKeychainHelper(t *testing.T) { creds := &credentials.Credentials{ - Label: credentials.CredsLabel, + Label: credentials.CredsLabel, ServerURL: "https://foobar.docker.io:2376/v1", Username: "foobar", Secret: "foobarbaz", } creds1 := &credentials.Credentials{ - Label: credentials.CredsLabel, + Label: credentials.CredsLabel, ServerURL: "https://foobar.docker.io:2376/v2", Username: "foobarbaz", Secret: "foobar",