aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsm/lapdm.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-04-26 21:50:54 +0200
committerHarald Welte <laforge@gnumonks.org>2012-04-26 22:15:12 +0200
commit973c3c3f248cdf5e6d459517f612dc7b8bf36ca6 (patch)
treef0d1e11d71921b5d6b4d8537830e535e3a61c06d /src/gsm/lapdm.c
parent81cd54a0c36cd9cf2bedd97221658a276aa2d84c (diff)
LAPDm: Ensure there is no payload in DISC frames0.4.2
When we send DISC frames (especially generated from RSL), we don't want any remaining bytes from the RSL message showing up as bogus DISC payload.
Diffstat (limited to 'src/gsm/lapdm.c')
-rw-r--r--src/gsm/lapdm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gsm/lapdm.c b/src/gsm/lapdm.c
index f123cb6c..1c08113e 100644
--- a/src/gsm/lapdm.c
+++ b/src/gsm/lapdm.c
@@ -959,7 +959,12 @@ static int rslms_rx_rll_rel_req(struct msgb *msg, struct lapdm_datalink *dl)
mode = rllh->data[1] & 1;
/* Pull rllh */
- msgb_pull(msg, msg->tail - msg->l2h);
+ msgb_pull_l2h(msg);
+
+ /* 04.06 3.8.3: No information field is permitted with the DISC
+ * command. */
+ msg->len = 0;
+ msg->tail = msg->l3h = msg->data;
/* prepare prim */
osmo_prim_init(&dp.oph, 0, PRIM_DL_REL, PRIM_OP_REQUEST, msg);