aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2022-04-08 19:08:24 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2022-05-25 03:03:44 +0200
commit82d5fbffc9c8853326cad56232edc9dc02faa9a1 (patch)
treed254d0f50d4e091eb1febef7f9a78d64807f9e31
parent63d7c7cb75e49abe7acd9f1e8c7207e76a6a89c3 (diff)
downloadhardware_replicant_libsamsung-ipc-82d5fbffc9c8853326cad56232edc9dc02faa9a1.tar.gz
hardware_replicant_libsamsung-ipc-82d5fbffc9c8853326cad56232edc9dc02faa9a1.tar.bz2
hardware_replicant_libsamsung-ipc-82d5fbffc9c8853326cad56232edc9dc02faa9a1.zip
Quick test
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rw-r--r--tools/ipc-modem/ipc-modem.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/tools/ipc-modem/ipc-modem.c b/tools/ipc-modem/ipc-modem.c
index 0bc2e1c..e81fdde 100644
--- a/tools/ipc-modem/ipc-modem.c
+++ b/tools/ipc-modem/ipc-modem.c
@@ -266,9 +266,9 @@ static void modem_response_sms(struct ipc_modem_data *data,
break;
case IPC_SMS_INCOMING_MSG:
struct ipc_sms_incoming_msg_header *header = resp->data;
- const void *pdu;
+ const void *pdu = NULL;
char *sms_text;
- size_t pdu_size;
+ size_t pdu_size = 0;
int rc;
ipc_modem_log(
@@ -288,8 +288,11 @@ static void modem_response_sms(struct ipc_modem_data *data,
if (header->msg_type != IPC_SMS_MSG_TYPE_SINGLE)
break;
- ipc_modem_print_sms_pdu(data, pdu, pdu_size);
-
+ /* TODO:
+ * - handle the 8 bytes before the SMS
+ * - Handle the arguments like pdu that is passed in
+ * functions before being defined
+ */
pdu_size = ipc_sms_incoming_msg_pdu_size_extract(resp->data,
resp->size);
ipc_modem_log(
@@ -311,7 +314,12 @@ static void modem_response_sms(struct ipc_modem_data *data,
if (pdu == NULL)
break;
- rc = ipc_modem_parse_sms_pdu(data, pdu, pdu_size, NULL, &sms_text);
+ if (pdu_size < 8)
+ break;
+
+ ipc_modem_print_sms_pdu(data, pdu + 8, pdu_size - 8);
+
+ rc = ipc_modem_parse_sms_pdu(data, pdu + 8, pdu_size - 8, NULL, &sms_text);
if (rc < 0)
break;