aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2011-06-09 14:46:03 -0500
committerDan Williams <dcbw@redhat.com>2011-06-09 14:46:03 -0500
commite5c967508d40a008eb2809628da01ed36c96511b (patch)
treecfebe996574eb73443f7ddf88eaa0ab9b67f0588 /src
parentf9f6d1dfdb070bec05e5e7385f8d4eb95e573b6f (diff)
ussd: fix leaked callback info in error cases
Diffstat (limited to 'src')
-rw-r--r--src/mm-generic-gsm.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c
index 29203ab0..479033d6 100644
--- a/src/mm-generic-gsm.c
+++ b/src/mm-generic-gsm.c
@@ -4811,9 +4811,8 @@ ussd_initiate (MMModemGsmUssd *modem,
MMCallbackInfo *info;
MMGenericGsmPrivate *priv = MM_GENERIC_GSM_GET_PRIVATE (modem);
- info = mm_callback_info_string_new (MM_MODEM (modem), callback, user_data);
-
if (priv->ussd_state != MM_MODEM_GSM_USSD_STATE_IDLE) {
+ info = mm_callback_info_string_new (MM_MODEM (modem), callback, user_data);
info->error = g_error_new (MM_MODEM_ERROR,
MM_MODEM_ERROR_GENERAL,
"USSD session already active.");
@@ -4832,9 +4831,8 @@ ussd_respond (MMModemGsmUssd *modem,
MMCallbackInfo *info;
MMGenericGsmPrivate *priv = MM_GENERIC_GSM_GET_PRIVATE (modem);
- info = mm_callback_info_string_new (MM_MODEM (modem), callback, user_data);
-
if (priv->ussd_state != MM_MODEM_GSM_USSD_STATE_USER_RESPONSE) {
+ info = mm_callback_info_string_new (MM_MODEM (modem), callback, user_data);
info->error = g_error_new (MM_MODEM_ERROR,
MM_MODEM_ERROR_GENERAL,
"No active USSD session, cannot respond.");