Browse Source

mac-capture: Don't call CFRelease on null vars

CFRelease is not meant to be used with null variables.  Check the
variables before calling CFRelease.
jp9000 10 năm trước cách đây
mục cha
commit
05eef74891
2 tập tin đã thay đổi với 10 bổ sung4 xóa
  1. 4 2
      plugins/mac-capture/audio-device-enum.c
  2. 6 2
      plugins/mac-capture/mac-audio.c

+ 4 - 2
plugins/mac-capture/audio-device-enum.c

@@ -62,8 +62,10 @@ static bool coreaudio_enum_device(enum_device_proc_t proc, void *param,
 	enum_next = proc(param, cf_name, cf_uid, id);
 
 fail:
-	CFRelease(cf_name);
-	CFRelease(cf_uid);
+	if (cf_name)
+		CFRelease(cf_name);
+	if (cf_uid)
+		CFRelease(cf_uid);
 	return enum_next;
 }
 

+ 6 - 2
plugins/mac-capture/mac-audio.c

@@ -113,7 +113,9 @@ static bool find_device_id_by_uid(struct coreaudio_data *ca)
 		success = coreaudio_get_device_id(cf_uid, &ca->device_id);
 	}
 
-	CFRelease(cf_uid);
+	if (cf_uid)
+		CFRelease(cf_uid);
+
 	return success;
 }
 
@@ -502,7 +504,9 @@ static bool coreaudio_get_device_name(struct coreaudio_data *ca)
 	bfree(ca->device_name);
 	ca->device_name = bstrdup(name);
 
-	CFRelease(cf_name);
+	if (cf_name)
+		CFRelease(cf_name);
+
 	return true;
 }