mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	bluetooth: Don't access a transport after it's freed.
In addition to moving the freeing a bit later, unnecessary checks for t->device are removed. t->device is initialized to a non-NULL value when the transport is created, and it's never changed.
This commit is contained in:
		
							parent
							
								
									6f1c3df37b
								
							
						
					
					
						commit
						af0c45386f
					
				
					 1 changed files with 4 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1388,17 +1388,18 @@ static DBusMessage *endpoint_clear_configuration(DBusConnection *c, DBusMessage
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    if ((t = pa_hashmap_get(y->transports, path))) {
 | 
			
		||||
        bool old_any_connected = t->device ? pa_bluetooth_device_any_audio_connected(t->device) : false;
 | 
			
		||||
        bool old_any_connected = pa_bluetooth_device_any_audio_connected(t->device);
 | 
			
		||||
 | 
			
		||||
        pa_log_debug("Clearing transport %s profile %d", t->path, t->profile);
 | 
			
		||||
        t->device->transports[t->profile] = NULL;
 | 
			
		||||
        pa_hashmap_remove(y->transports, t->path);
 | 
			
		||||
        t->state = PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED;
 | 
			
		||||
        pa_hook_fire(&y->hooks[PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED], t);
 | 
			
		||||
        transport_free(t);
 | 
			
		||||
 | 
			
		||||
        if (t->device && old_any_connected != pa_bluetooth_device_any_audio_connected(t->device))
 | 
			
		||||
        if (old_any_connected != pa_bluetooth_device_any_audio_connected(t->device))
 | 
			
		||||
            run_callback(t->device, FALSE);
 | 
			
		||||
 | 
			
		||||
        transport_free(t);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pa_assert_se(r = dbus_message_new_method_return(m));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue