summaryrefslogtreecommitdiffstats
path: root/drivers/isimodem/call-barring.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isimodem/call-barring.c')
-rw-r--r--drivers/isimodem/call-barring.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/isimodem/call-barring.c b/drivers/isimodem/call-barring.c
index 8e067d4d..2a982f9e 100644
--- a/drivers/isimodem/call-barring.c
+++ b/drivers/isimodem/call-barring.c
@@ -128,10 +128,14 @@ static void isi_set(struct ofono_call_barring *barr, const char *lock,
DBG("lock code %s enable %d class %d password %s\n",
lock, enable, cls, passwd);
- if (cbd && g_isi_request_make(bd->client, msg, sizeof(msg), SS_TIMEOUT,
- set_resp_cb, cbd))
+ if (!cbd || !bd)
+ goto error;
+
+ if (g_isi_request_make(bd->client, msg, sizeof(msg), SS_TIMEOUT,
+ set_resp_cb, cbd))
return;
+error:
CALLBACK_WITH_FAILURE(cb, data);
g_free(cbd);
}
@@ -271,10 +275,14 @@ static void isi_query(struct ofono_call_barring *barr, const char *lock,
DBG("barring query lock code %s\n", lock);
- if (cbd && g_isi_request_make(bd->client, msg, sizeof(msg), SS_TIMEOUT,
- query_resp_cb, cbd))
+ if (!cbd || !bd)
+ goto error;
+
+ if (g_isi_request_make(bd->client, msg, sizeof(msg), SS_TIMEOUT,
+ query_resp_cb, cbd))
return;
+error:
CALLBACK_WITH_FAILURE(cb, 0, data);
g_free(cbd);
}
@@ -338,11 +346,14 @@ static void isi_set_passwd(struct ofono_call_barring *barr, const char *lock,
DBG("lock code %s (%u) old password %s new password %s\n",
lock, ss_code, old_passwd, new_passwd);
- if (cbd &&
- g_isi_request_make(bd->client, msg, sizeof(msg), SS_TIMEOUT,
+ if (!cbd || !bd)
+ goto error;
+
+ if (g_isi_request_make(bd->client, msg, sizeof(msg), SS_TIMEOUT,
set_passwd_resp_cb, cbd))
return;
+error:
CALLBACK_WITH_FAILURE(cb, data);
g_free(cbd);
}