NameOwnerChanged handlers shouldn't assume that the bus is behaving correctly
@tanuk
Submitted by Tanu Kaskinen Assigned to pul..@..op.org
Description
Our policy is that we don't trust any external processes to behave correctly. This means that PulseAudio shouldn't crash or leak memory if some other process does something unexpected.
NameOwnerChanged handlers, at least in bluez5-util and backend-ofono, assume that the bus daemon is behaving correctly, i.e. that the old name passed via the signal really is the old name. We should remember the owner name ourselves, and complain loudly if the bus daemon disagrees about the old name.
Validating the old name is important, because if the bus incorrectly claims that there was no prior owner (the old owner is an empty string), we should clean up our state that we had for the old owner, but currently we don't.