laforge submitted this change.
GTP: CreatePDPContext: only use IMEISV IE when IMEISV is known
The IE is optional, but if it is present, it must be 11 byte long
containing a 8 byte IMEISV. If IMEI is unknown the SGSN
would add an empty IMEISV IE which is invalid.
Change-Id: I812af1e702e77214244f32ae65663c1a03b23962
---
M src/sgsn/sgsn_libgtp.c
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/sgsn/sgsn_libgtp.c b/src/sgsn/sgsn_libgtp.c
index 8eb77b0..3c35c78 100644
--- a/src/sgsn/sgsn_libgtp.c
+++ b/src/sgsn/sgsn_libgtp.c
@@ -300,11 +300,14 @@
break;
}
- /* include the IMEI(SV) */
- pdp->imeisv_given = 1;
- gsm48_encode_bcd_number(&pdp->imeisv.v[0], 8, 0, mmctx->imei);
- pdp->imeisv.l = pdp->imeisv.v[0];
- memmove(&pdp->imeisv.v[0], &pdp->imeisv.v[1], 8);
+ /* optional include the IMEI(SV) */
+ if (mmctx->imei[0] != '\0') {
+ memset(&pdp->imeisv.v[0], 0, 8);
+ pdp->imeisv_given = 1;
+ gsm48_encode_bcd_number(&pdp->imeisv.v[0], 8, 0, mmctx->imei);
+ pdp->imeisv.l = 8;
+ memmove(&pdp->imeisv.v[0], &pdp->imeisv.v[1], 8);
+ }
/* change pdp state to 'requested' */
pctx->state = PDP_STATE_CR_REQ;
To view, visit change 38444. To unsubscribe, or for help writing mail filters, visit settings.