mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-04 20:17:38 +00:00
winecoreaudio: Correctly handle devices whose UID contains non-ASCII characters.
This commit is contained in:
parent
14a51fa446
commit
a630b125ef
|
@ -325,7 +325,12 @@ static NTSTATUS unix_get_endpoint_ids(void *args)
|
|||
|
||||
for(i = 0; i < params->num; i++){
|
||||
const SIZE_T name_len = CFStringGetLength(info[i].name) + 1;
|
||||
const SIZE_T device_len = CFStringGetLength(info[i].uid) + 1;
|
||||
CFIndex device_len;
|
||||
|
||||
CFStringGetBytes(info[i].uid, CFRangeMake(0, CFStringGetLength(info[i].uid)), kCFStringEncodingUTF8,
|
||||
0, false, NULL, 0, &device_len);
|
||||
device_len++; /* for null terminator */
|
||||
|
||||
needed += name_len * sizeof(WCHAR) + ((device_len + 1) & ~1);
|
||||
|
||||
if(needed <= params->size){
|
||||
|
@ -336,7 +341,8 @@ static NTSTATUS unix_get_endpoint_ids(void *args)
|
|||
offset += name_len * sizeof(WCHAR);
|
||||
|
||||
endpoint->device = offset;
|
||||
CFStringGetCString(info[i].uid, (char *)params->endpoints + offset, params->size - offset, kCFStringEncodingUTF8);
|
||||
CFStringGetBytes(info[i].uid, CFRangeMake(0, CFStringGetLength(info[i].uid)), kCFStringEncodingUTF8,
|
||||
0, false, (UInt8 *)params->endpoints + offset, params->size - offset, NULL);
|
||||
((char *)params->endpoints)[offset + device_len - 1] = '\0';
|
||||
offset += (device_len + 1) & ~1;
|
||||
|
||||
|
|
Loading…
Reference in a new issue