osmith has uploaded this change for review.

View Change

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;
}


To view, visit change 41037. To unsubscribe, or for help writing mail filters, visit settings.

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