diff options
-rw-r--r-- | openbsc/include/openbsc/gprs_sgsn.h | 9 | ||||
-rw-r--r-- | openbsc/src/gprs/gprs_gmm.c | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/openbsc/include/openbsc/gprs_sgsn.h b/openbsc/include/openbsc/gprs_sgsn.h index 62fbb85a5..97a6b7d77 100644 --- a/openbsc/include/openbsc/gprs_sgsn.h +++ b/openbsc/include/openbsc/gprs_sgsn.h @@ -78,7 +78,14 @@ struct sgsn_mm_ctx { /* CKSN */ enum gprs_ciph_algo ciph_algo; struct { - uint8_t buf[52]; /* 10.5.5.12a */ + /* TS 23.060 version 9.7.0 Release 9 section 6.14.1.1 + * states: To allow for the addition of future radio + * technologies, frequency bands, and other + * enhancements, the SGSN shall store the MS radio + * access capability even if it is larger than specified + * in TS 24.008 [13], up to a maximum size of 255 + * octets. */ + uint8_t buf[255]; /* 10.5.5.12a */ uint8_t len; } ms_radio_access_capa; struct { diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c index cc9d2972e..8a1dff5e1 100644 --- a/openbsc/src/gprs/gprs_gmm.c +++ b/openbsc/src/gprs/gprs_gmm.c @@ -675,8 +675,6 @@ static int gsm48_rx_gmm_att_req(struct sgsn_mm_ctx *ctx, struct msgb *msg, /* MS Radio Access Capability 10.5.5.12a */ ms_ra_acc_cap_len = *cur++; ms_ra_acc_cap = cur; - if (ms_ra_acc_cap_len > 52) - goto err_inval; cur += ms_ra_acc_cap_len; /* Optional: Old P-TMSI Signature, Requested READY timer, TMSI Status */ |