gprs_gmm: Fix RA UPD handling for IU mode

This commit is contained in:
Daniel Willmann
2016-03-16 18:39:52 +01:00
parent 5e611021b0
commit deb227b98e

View File

@@ -1326,10 +1326,15 @@ static int gsm48_rx_gmm_ra_upd_req(struct sgsn_mm_ctx *mmctx, struct msgb *msg,
uint8_t mi_len = TLVP_LEN(&tp, GSM48_IE_GMM_ALLOC_PTMSI); uint8_t mi_len = TLVP_LEN(&tp, GSM48_IE_GMM_ALLOC_PTMSI);
uint8_t *mi = TLVP_VAL(&tp, GSM48_IE_GMM_ALLOC_PTMSI); uint8_t *mi = TLVP_VAL(&tp, GSM48_IE_GMM_ALLOC_PTMSI);
uint8_t mi_type = *mi & GSM_MI_TYPE_MASK; uint8_t mi_type = *mi & GSM_MI_TYPE_MASK;
uint32_t tmsi;
gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len); gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len);
if (mi_type == GSM_MI_TYPE_TMSI) if (mi_type == GSM_MI_TYPE_TMSI) {
mmctx = sgsn_mm_ctx_by_ptmsi(mi_string); memcpy(&tmsi, mi+1, 4);
tmsi = ntohl(tmsi);
mmctx = sgsn_mm_ctx_by_ptmsi(tmsi);
}
} }
if (mmctx) { if (mmctx) {
LOGMMCTXP(LOGL_INFO, mmctx, LOGMMCTXP(LOGL_INFO, mmctx,