aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/gsm_04_11.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2009-08-10 00:22:19 +0200
committerHarald Welte <laforge@netfilter.org>2009-08-10 00:22:19 +0200
commit0d544e7db5f65ff79bb0436a109576b6e82ec4ee (patch)
tree6d925f22169acdc8124fac50ec3ab72acdae2e3c /openbsc/src/gsm_04_11.c
parent6c3d2edebf965688fcc7bde2b4236c50645b75e9 (diff)
fix off-by-one error in calculating RPDU length for CP-USER-DATA IE
Diffstat (limited to 'openbsc/src/gsm_04_11.c')
-rw-r--r--openbsc/src/gsm_04_11.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c
index 9a5a08cde..728574ad7 100644
--- a/openbsc/src/gsm_04_11.c
+++ b/openbsc/src/gsm_04_11.c
@@ -121,10 +121,11 @@ static int gsm411_rp_sendmsg(struct msgb *msg, struct gsm_trans *trans,
u_int8_t rp_msg_type, u_int8_t rp_msg_ref)
{
struct gsm411_rp_hdr *rp;
+ u_int8_t len = msg->len;
/* GSM 04.11 RP-DATA header */
rp = (struct gsm411_rp_hdr *)msgb_push(msg, sizeof(*rp));
- rp->len = msg->len;
+ rp->len = len + 2;
rp->msg_type = rp_msg_type;
rp->msg_ref = rp_msg_ref; /* FIXME: Choose randomly */