properly handle empty CFStringRefs.
authorRobin Gareus <robin@gareus.org>
Sun, 8 Mar 2015 00:38:47 +0000 (01:38 +0100)
committerRobin Gareus <robin@gareus.org>
Sun, 8 Mar 2015 00:40:39 +0000 (01:40 +0100)
libs/backends/coreaudio/coremidi_io.cc

index c3bd868165c601ab39ad93e08b9ec6cc7da2aa5e..fd3b4c1db8b2bfd514f1cf2f840836cea2be322b 100644 (file)
@@ -46,7 +46,11 @@ static void midiInputCallback(const MIDIPacketList *list, void *procRef, void *s
 static std::string getDisplayName(MIDIObjectRef object)
 {
        CFStringRef name = nil;
-       if (noErr != MIDIObjectGetStringProperty(object, kMIDIPropertyDisplayName, &name) && name) {
+       if (noErr != MIDIObjectGetStringProperty(object, kMIDIPropertyDisplayName, &name)) {
+               return "";
+       }
+       if (!CFStringGetCStringPtr(name, kCFStringEncodingUTF8)) {
+               if (name) CFRelease(name);
                return "";
        }
        std::string rv (CFStringGetCStringPtr(name, kCFStringEncodingUTF8));