aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2024-02-28 21:37:49 -0600
committerDenis Kenzior <denkenz@gmail.com>2024-02-28 21:38:42 -0600
commitc2b2c7e7e108ae767afddbb118cb9f7f258f21de (patch)
tree40a4bdd4b146f9c870451058193445c5b402fcae
parent5244e1e40a57c2283b0014b191e7ee86c1eda31d (diff)
downloadofono-c2b2c7e7e108ae767afddbb118cb9f7f258f21de.tar.gz
emulator: Add missing error checks
-rw-r--r--src/emulator.c56
1 files changed, 42 insertions, 14 deletions
diff --git a/src/emulator.c b/src/emulator.c
index dd6aebe77..1a9c1386c 100644
--- a/src/emulator.c
+++ b/src/emulator.c
@@ -256,7 +256,9 @@ static void dun_ath_cb(GAtServer *server, GAtServerRequestType type,
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto error;
if (g_at_result_iter_next_number(&iter, &val) == FALSE)
goto error;
@@ -307,7 +309,9 @@ static void dun_ato_cb(GAtServer *server, GAtServerRequestType type,
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto error;
if (g_at_result_iter_next_number(&iter, &val) == FALSE)
goto error;
@@ -470,7 +474,9 @@ static void brsf_cb(GAtServer *server, GAtServerRequestType type,
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
if (g_at_result_iter_next_number(&iter, &val) == FALSE)
goto fail;
@@ -599,7 +605,9 @@ static void cmer_cb(GAtServer *server, GAtServerRequestType type,
int val;
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
/* mode */
if (!g_at_result_iter_next_number_default(&iter, mode, &mode))
@@ -683,7 +691,9 @@ static void clip_cb(GAtServer *server, GAtServerRequestType type,
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
if (!g_at_result_iter_next_number(&iter, &val))
goto fail;
@@ -721,7 +731,9 @@ static void ccwa_cb(GAtServer *server, GAtServerRequestType type,
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
if (!g_at_result_iter_next_number(&iter, &val))
goto fail;
@@ -764,7 +776,9 @@ static void cmee_cb(GAtServer *server, GAtServerRequestType type,
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
if (g_at_result_iter_next_number(&iter, &val) == FALSE)
goto fail;
@@ -810,7 +824,9 @@ static void bia_cb(GAtServer *server, GAtServerRequestType type,
int val;
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
/* check validity of the request */
while (g_at_result_iter_next_number_default(&iter, 0, &val))
@@ -823,7 +839,9 @@ static void bia_cb(GAtServer *server, GAtServerRequestType type,
/* request is valid, update the indicator activation status */
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
for (l = em->indicators; l; l = l->next) {
struct indicator *ind = l->data;
@@ -877,7 +895,9 @@ static void bind_cb(GAtServer *server, GAtServerRequestType type,
int num_hf_indicators = 0;
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
/* check validity of the request */
while (num_hf_indicators < 20 &&
@@ -895,7 +915,9 @@ static void bind_cb(GAtServer *server, GAtServerRequestType type,
/* request is valid, update the indicator activation status */
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
while (g_at_result_iter_next_number(&iter, &hf_indicator))
ofono_info("HF supports indicator: 0x%04x",
@@ -926,7 +948,9 @@ static void biev_cb(GAtServer *server, GAtServerRequestType type,
int val;
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
if (g_at_result_iter_next_number(&iter, &hf_indicator) == FALSE)
goto fail;
@@ -980,7 +1004,9 @@ static void bac_cb(GAtServer *server, GAtServerRequestType type,
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ goto fail;
/*
* CVSD codec is mandatory and must come first.
@@ -1069,7 +1095,9 @@ static void bcs_cb(GAtServer *server, GAtServerRequestType type,
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_result_iter_init(&iter, result);
- g_at_result_iter_next(&iter, "");
+
+ if (!g_at_result_iter_next(&iter, ""))
+ break;
if (!g_at_result_iter_next_number(&iter, &val))
break;