osmith has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-msc/+/41036?usp=email )


Change subject: gsm48_cc_tx_setup: add goto error
......................................................................

gsm48_cc_tx_setup: add goto error

Move common clean up code to a new error label.

Change-Id: Ic8268d32df968d2e7c80f62b4a4fe370052f999f
---
M src/libmsc/gsm_04_08_cc.c
1 file changed, 10 insertions(+), 18 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/36/41036/1

diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 467305d..59f42c8 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -855,9 +855,7 @@
                                      GSM48_CAUSE_LOC_PRN_S_LU,
                                      GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
                trans->callref = 0;
-               trans_free(trans);
-               msgb_free(msg);
-               return rc;
+               goto error;
        }

        /* Get free transaction_id */
@@ -868,9 +866,7 @@
                                      GSM48_CAUSE_LOC_PRN_S_LU,
                                      GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
                trans->callref = 0;
-               trans_free(trans);
-               msgb_free(msg);
-               return rc;
+               goto error;
        }
        trans->transaction_id = trans_id;

@@ -929,9 +925,7 @@
                rc = bearer_cap_set_radio(&bearer_cap);
                if (rc) {
                        LOG_TRANS(trans, LOGL_ERROR, "Error composing Bearer 
Capability for CC Setup\n");
-                       trans_free(trans);
-                       msgb_free(msg);
-                       return rc;
+                       goto error;
                }
                /* If no resulting codecs remain, error out. We cannot find a 
codec that matches both call legs. If the MGW were
                 * able to transcode, we could use non-identical codecs on each 
conn of the MGW endpoint, but we are aiming for
@@ -946,16 +940,12 @@
                                              GSM48_CAUSE_LOC_PRN_S_LU,
                                              GSM48_CC_CAUSE_INCOMPAT_DEST /* 
TODO: correct cause code? */);
                        trans->callref = 0;
-                       trans_free(trans);
-                       msgb_free(msg);
-                       return rc;
+                       goto error;
                }
                rc = bearer_cap_filter_rev_lev(&bearer_cap, 
trans->vsub->classmark.classmark1.rev_lev);
                if (rc) {
                        LOG_TRANS(trans, LOGL_ERROR, "No codec offered is 
supported by phase 1 mobile.\n");
-                       trans_free(trans);
-                       msgb_free(msg);
-                       return rc;
+                       goto error;
                }
                break;
        case GSM48_BCAP_ITCAP_3k1_AUDIO:
@@ -976,9 +966,7 @@
                                              GSM48_CAUSE_LOC_PRN_S_LU,
                                              GSM48_CC_CAUSE_INCOMPAT_DEST /* 
TODO: correct cause code? */);
                        trans->callref = 0;
-                       trans_free(trans);
-                       msgb_free(msg);
-                       return rc;
+                       goto error;
                }
                break;
        }
@@ -1021,6 +1009,10 @@
        rate_ctr_inc(rate_ctr_group_get_ctr(trans->net->msc_ctrs, 
MSC_CTR_CALL_MT_SETUP));

        return trans_tx_gsm48(trans, msg);
+error:
+       trans_free(trans);
+       msgb_free(msg);
+       return rc;
 }

 static int gsm48_cc_rx_call_conf(struct gsm_trans *trans, struct msgb *msg)

--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/41036?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Ic8268d32df968d2e7c80f62b4a4fe370052f999f
Gerrit-Change-Number: 41036
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osm...@sysmocom.de>

Reply via email to