diff options
author | Paul Kocialkowski <contact@paulk.fr> | 2013-09-28 16:38:51 +0200 |
---|---|---|
committer | Paul Kocialkowski <contact@paulk.fr> | 2013-09-28 16:38:51 +0200 |
commit | fd051580b347b09bf43d1fab29cea3d58b113e09 (patch) | |
tree | df76485577c71a1435be41a1b6115f2fe4795263 /sms.c | |
parent | 233ef2c6769c1c833e89651ae5846e66a5097cfb (diff) | |
download | hardware_replicant_libsamsung-ril-fd051580b347b09bf43d1fab29cea3d58b113e09.tar.gz hardware_replicant_libsamsung-ril-fd051580b347b09bf43d1fab29cea3d58b113e09.tar.bz2 hardware_replicant_libsamsung-ril-fd051580b347b09bf43d1fab29cea3d58b113e09.zip |
Check modem state before RIL requests and properly report it on crash
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'sms.c')
-rw-r--r-- | sms.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -361,6 +361,9 @@ void ril_request_send_sms(RIL_Token t, void *data, size_t length) if (data == NULL || length < (int) (2 * sizeof(char *))) goto error; + if (ril_radio_state_complete(RADIO_STATE_OFF, t)) + return; + pdu = ((char **) data)[1]; smsc = ((unsigned char **) data)[0]; pdu_length = 0; @@ -668,6 +671,9 @@ void ril_request_sms_acknowledge(RIL_Token t, void *data, size_t length) if (data == NULL || length < 2 * sizeof(int)) goto error; + if (ril_radio_state_complete(RADIO_STATE_OFF, t)) + return; + success = ((int *) data)[0]; fail_cause = ((int *) data)[1]; @@ -732,6 +738,9 @@ void ril_request_write_sms_to_sim(RIL_Token token, void *data, size_t size) if (data == NULL || size < sizeof(RIL_SMS_WriteArgs)) goto error; + if (ril_radio_state_complete(RADIO_STATE_OFF, token)) + return; + args = (RIL_SMS_WriteArgs *) data; if (args->pdu != NULL) { @@ -808,6 +817,9 @@ void ril_request_delete_sms_on_sim(RIL_Token token, void *data, size_t size) if (data == NULL || size < sizeof(index)) goto error; + if (ril_radio_state_complete(RADIO_STATE_OFF, token)) + return; + index = *((int *) data); if (index <= 0 || index > 0xffff) |