diff options
author | Sergey Kostanbaev <sergey.kostanbaev@gmail.com> | 2015-10-28 15:18:21 +0300 |
---|---|---|
committer | Ivan Kluchnikov <kluchnikovi@gmail.com> | 2017-02-07 18:59:54 +0300 |
commit | 420e4d445cda26e6fa62baf71f343be6de5f0b15 (patch) | |
tree | 42e9ebb1be3bb85db7eb16609f0c43219e7c59be /openbsc | |
parent | a8f56961beefa3442b97795d369837704a51d3c3 (diff) |
libmsc: fix no return and use after free
Diffstat (limited to 'openbsc')
-rw-r--r-- | openbsc/src/libmsc/ussd.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/openbsc/src/libmsc/ussd.c b/openbsc/src/libmsc/ussd.c index ad838f503..97e22b86a 100644 --- a/openbsc/src/libmsc/ussd.c +++ b/openbsc/src/libmsc/ussd.c @@ -141,7 +141,7 @@ int on_ussd_response(const struct ss_request *req, const char *extention) struct ussd_request ussd_req; struct gsm_ussd* ussdq; memset(&ussd_req, 0, sizeof(ussd_req)); - int rc; + int rc = 0; switch (req->message_type) { case GSM0480_MTYPE_REGISTER: @@ -183,9 +183,11 @@ int on_ussd_response(const struct ss_request *req, const char *extention) } if (req->message_type == GSM0480_MTYPE_RELEASE_COMPLETE) { - ussd_session_free(ussdq); msc_release_connection(ussdq->conn); + ussd_session_free(ussdq); } + + return rc; } static int ussd_sup_send_reject(struct gsm_subscriber_connection *conn, |