mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-02 09:01:46 -05:00
coreaudio: Make coreaudio-detect safer by adding asserts before dereferencing
This commit is contained in:
parent
fb05059acf
commit
d28fc0df89
1 changed files with 11 additions and 6 deletions
|
|
@ -62,12 +62,13 @@ static int ca_device_added(struct pa_module *m, AudioObjectID id) {
|
||||||
AudioObjectPropertyAddress property_address;
|
AudioObjectPropertyAddress property_address;
|
||||||
OSStatus err;
|
OSStatus err;
|
||||||
pa_module *mod;
|
pa_module *mod;
|
||||||
struct userdata *u = m->userdata;
|
struct userdata *u;
|
||||||
struct ca_device *dev;
|
struct ca_device *dev;
|
||||||
char *args, tmp[64];
|
char *args, tmp[64];
|
||||||
UInt32 size;
|
UInt32 size;
|
||||||
|
|
||||||
pa_assert(u);
|
pa_assert(m);
|
||||||
|
pa_assert_se(u = m->userdata);
|
||||||
|
|
||||||
/* To prevent generating a black hole that will suck us in,
|
/* To prevent generating a black hole that will suck us in,
|
||||||
don't create sources/sinks for PulseAudio virtual devices */
|
don't create sources/sinks for PulseAudio virtual devices */
|
||||||
|
|
@ -108,9 +109,10 @@ static int ca_update_device_list(struct pa_module *m) {
|
||||||
UInt32 i, size, num_devices;
|
UInt32 i, size, num_devices;
|
||||||
AudioDeviceID *device_id;
|
AudioDeviceID *device_id;
|
||||||
struct ca_device *dev;
|
struct ca_device *dev;
|
||||||
struct userdata *u = m->userdata;
|
struct userdata *u;
|
||||||
|
|
||||||
pa_assert(u);
|
pa_assert(m);
|
||||||
|
pa_assert_se(u = m->userdata);
|
||||||
|
|
||||||
property_address.mSelector = kAudioHardwarePropertyDevices;
|
property_address.mSelector = kAudioHardwarePropertyDevices;
|
||||||
property_address.mScope = kAudioObjectPropertyScopeGlobal;
|
property_address.mScope = kAudioObjectPropertyScopeGlobal;
|
||||||
|
|
@ -202,6 +204,8 @@ int pa__init(pa_module *m) {
|
||||||
struct userdata *u = pa_xnew0(struct userdata, 1);
|
struct userdata *u = pa_xnew0(struct userdata, 1);
|
||||||
AudioObjectPropertyAddress property_address;
|
AudioObjectPropertyAddress property_address;
|
||||||
|
|
||||||
|
pa_assert(m);
|
||||||
|
|
||||||
m->userdata = u;
|
m->userdata = u;
|
||||||
|
|
||||||
property_address.mSelector = kAudioHardwarePropertyDevices;
|
property_address.mSelector = kAudioHardwarePropertyDevices;
|
||||||
|
|
@ -227,11 +231,12 @@ fail:
|
||||||
}
|
}
|
||||||
|
|
||||||
void pa__done(pa_module *m) {
|
void pa__done(pa_module *m) {
|
||||||
struct userdata *u = m->userdata;
|
struct userdata *u;
|
||||||
struct ca_device *dev = u->devices;
|
struct ca_device *dev = u->devices;
|
||||||
AudioObjectPropertyAddress property_address;
|
AudioObjectPropertyAddress property_address;
|
||||||
|
|
||||||
pa_assert(u);
|
pa_assert(m);
|
||||||
|
pa_assert_se(u = m->userdata);
|
||||||
|
|
||||||
property_address.mSelector = kAudioHardwarePropertyDevices;
|
property_address.mSelector = kAudioHardwarePropertyDevices;
|
||||||
property_address.mScope = kAudioObjectPropertyScopeGlobal;
|
property_address.mScope = kAudioObjectPropertyScopeGlobal;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue