osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/41037?usp=email )
Change subject: gsm48_cc_tx_setup: move msgb_alloc down ......................................................................
gsm48_cc_tx_setup: move msgb_alloc down
Don't alloc msgb before it gets used.
Change-Id: I99edbdc915552a4ab28ef6f7a1e55818092a2e20 --- M src/libmsc/gsm_04_08_cc.c 1 file changed, 5 insertions(+), 6 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/37/41037/1
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index 59f42c8..b82c018 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -838,14 +838,12 @@
static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) { - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC SETUP"); + struct msgb *msg; struct gsm48_hdr *gh; struct gsm_mncc *setup = arg; int rc, trans_id; struct gsm_mncc_bearer_cap bearer_cap;
- gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - /* transaction id must not be assigned */ if (trans->transaction_id != TRANS_ID_UNASSIGNED) { LOG_TRANS(trans, LOGL_DEBUG, "TX Setup with assigned transaction. " @@ -870,8 +868,6 @@ } trans->transaction_id = trans_id;
- gh->msg_type = GSM48_MT_CC_SETUP; - gsm48_start_cc_timer(trans, 0x303, GSM48_T303);
/* MT call leg is starting. Gather all codecs information so far known. @@ -974,6 +970,10 @@ /* Create a copy of the bearer capability in the transaction struct, so we can use this information later */ trans->bearer_cap = bearer_cap;
+ msg = gsm48_msgb_alloc_name("GSM 04.08 CC SETUP"); + gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + gh->msg_type = GSM48_MT_CC_SETUP; + gsm48_encode_bearer_cap(msg, 0, &bearer_cap);
/* facility */ @@ -1011,7 +1011,6 @@ return trans_tx_gsm48(trans, msg); error: trans_free(trans); - msgb_free(msg); return rc; }