---
 drivers/qmimodem/gprs-context.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/qmimodem/gprs-context.c b/drivers/qmimodem/gprs-context.c
index 1708ce0..02b0671 100644
--- a/drivers/qmimodem/gprs-context.c
+++ b/drivers/qmimodem/gprs-context.c
@@ -230,15 +230,13 @@ static void qmi_activate_primary(struct 
ofono_gprs_context *gc,
                                ofono_gprs_context_cb_t cb, void *user_data)
 {
        struct gprs_context_data *data = ofono_gprs_context_get_data(gc);
-       struct cb_data *cbd = cb_data_new(cb, user_data);
+       struct cb_data *cbd;
        struct qmi_param *param;
        uint8_t ip_family;
        uint8_t auth;
 
        DBG("cid %u", ctx->cid);
 
-       cbd->user = gc;
-
        data->active_context = ctx->cid;
 
        switch (ctx->proto) {
@@ -284,6 +282,9 @@ static void qmi_activate_primary(struct ofono_gprs_context 
*gc,
                qmi_param_append(param, QMI_WDS_PARAM_PASSWORD,
                                        strlen(ctx->password), ctx->password);
 
+       cbd = cb_data_new(cb, user_data);
+       cbd->user = gc;
+
        if (qmi_service_send(data->wds, QMI_WDS_START_NET, param,
                                        start_net_cb, cbd, g_free) > 0)
                return;
@@ -293,9 +294,7 @@ static void qmi_activate_primary(struct ofono_gprs_context 
*gc,
 error:
        data->active_context = 0;
 
-       CALLBACK_WITH_FAILURE(cb, cbd->data);
-
-       g_free(cbd);
+       CALLBACK_WITH_FAILURE(cb, user_data);
 }
 
 static void stop_net_cb(struct qmi_result *result, void *user_data)
-- 
2.9.3

_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono

Reply via email to