From 06480bdf536cfb8f64a76155559893cadcfaf276 Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Fri, 20 Nov 2015 09:36:54 +0100 Subject: voicecall: don't dereference a supplied null value When the voicecall atom is unregistered we remove all HFP support as well but were supplying a zero as value to the emulator status callbacks which caused the process to crash as we were dereferencing the supplied value always and not respecting a zero as indicator to reset. --- src/voicecall.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/voicecall.c b/src/voicecall.c index b0882391..c9b1b435 100644 --- a/src/voicecall.c +++ b/src/voicecall.c @@ -2665,16 +2665,25 @@ static void emulator_hfp_unregister(struct ofono_atom *atom) struct ofono_voicecall *vc = __ofono_atom_get_data(atom); struct ofono_modem *modem = __ofono_atom_get_modem(atom); + struct emulator_status data; + data.vc = vc; + + data.status = OFONO_EMULATOR_CALL_INACTIVE; __ofono_modem_foreach_registered_atom(modem, OFONO_ATOM_TYPE_EMULATOR_HFP, - emulator_call_status_cb, 0); + emulator_call_status_cb, &data); + + data.status = OFONO_EMULATOR_CALLSETUP_INACTIVE; __ofono_modem_foreach_registered_atom(modem, OFONO_ATOM_TYPE_EMULATOR_HFP, emulator_callsetup_status_cb, - 0); + &data); + + data.status = OFONO_EMULATOR_CALLHELD_NONE; __ofono_modem_foreach_registered_atom(modem, OFONO_ATOM_TYPE_EMULATOR_HFP, - emulator_callheld_status_cb, 0); + emulator_callheld_status_cb, + &data); __ofono_modem_foreach_registered_atom(modem, OFONO_ATOM_TYPE_EMULATOR_HFP, -- cgit v1.2.3