stk: Check if an agent is registered when UI is required

In case of unsolicited proactive command, we could have a crash
when no agent was registered.
This commit is contained in:
Philippe Nunes 2012-08-30 18:20:41 +02:00 committed by Denis Kenzior
parent ec6269e59b
commit 3ac780fee7
1 changed files with 9 additions and 0 deletions

View File

@ -515,6 +515,9 @@ static gboolean stk_alpha_id_set(struct ofono_stk *stk,
if (alpha == NULL)
return FALSE;
if (stk->current_agent == NULL)
return FALSE;
if (stk->respond_on_exit)
stk_agent_display_action(stk->current_agent, alpha, icon,
user_termination_cb, stk, NULL);
@ -2640,6 +2643,9 @@ static gboolean handle_setup_call_confirmation_req(struct stk_command *cmd,
if (alpha_id == NULL)
goto out;
if (stk->current_agent == FALSE)
goto out;
err = stk_agent_confirm_call(stk->current_agent, alpha_id,
&sc->icon_id_usr_cfm,
confirm_handled_call_cb,
@ -2747,6 +2753,9 @@ void ofono_stk_proactive_command_notify(struct ofono_stk *stk,
case STK_COMMAND_TYPE_GET_INPUT:
case STK_COMMAND_TYPE_PLAY_TONE:
case STK_COMMAND_TYPE_SETUP_CALL:
case STK_COMMAND_TYPE_SEND_SMS:
case STK_COMMAND_TYPE_SEND_USSD:
case STK_COMMAND_TYPE_SEND_DTMF:
send_simple_response(stk, STK_RESULT_TYPE_NOT_CAPABLE);
return;