1
0
mirror of https://github.com/docker/docker-credential-helpers.git synced 2026-06-13 16:01:28 +05:30

Fix type conversion for labels added to search queries on macOS

Signed-off-by: Nassim 'Nass' Eddequiouaq <eddequiouaq.nassim@gmail.com>
This commit is contained in:
Nassim 'Nass' Eddequiouaq
2017-03-08 18:54:09 +01:00
parent c6cf8aa13b
commit c5fbd3a5ad
2 changed files with 7 additions and 3 deletions
+5 -1
View File
@@ -135,16 +135,20 @@ char * CFStringToCharArr(CFStringRef aString) {
} }
char *keychain_list(char *credsLabel, char *** paths, char *** accts, unsigned int *list_l) { 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); CFMutableDictionaryRef query = CFDictionaryCreateMutable (NULL, 1, NULL, NULL);
CFDictionaryAddValue(query, kSecClass, kSecClassInternetPassword); CFDictionaryAddValue(query, kSecClass, kSecClassInternetPassword);
CFDictionaryAddValue(query, kSecReturnAttributes, kCFBooleanTrue); CFDictionaryAddValue(query, kSecReturnAttributes, kCFBooleanTrue);
CFDictionaryAddValue(query, kSecMatchLimit, kSecMatchLimitAll); CFDictionaryAddValue(query, kSecMatchLimit, kSecMatchLimitAll);
CFDictionaryAddValue(query, kSecAttrLabel, CFSTR(credsLabel)); CFDictionaryAddValue(query, kSecAttrLabel, credsLabelCF);
//Use this query dictionary //Use this query dictionary
CFTypeRef result= NULL; CFTypeRef result= NULL;
OSStatus status = SecItemCopyMatching( OSStatus status = SecItemCopyMatching(
query, query,
&result); &result);
CFRelease(credsLabelCF);
//Ran a search and store the results in result //Ran a search and store the results in result
if (status) { if (status) {
return get_error(status); return get_error(status);