[GPRS] SNDCP: Check if SN-PDU is too large and reject it

... since we don't do fragmentation yet
This commit is contained in:
Harald Welte 2010-06-03 07:14:59 +02:00
parent 1d9d944310
commit db2c39f888
1 changed files with 8 additions and 0 deletions

View File

@ -172,6 +172,7 @@ int sndcp_sm_activate_ind(struct gprs_llc_lle *lle, uint8_t nsapi)
return 0;
}
/* Request transmission of a SN-PDU over specified LLC Entity + SAPI */
int sndcp_unitdata_req(struct msgb *msg, struct gprs_llc_lle *lle, uint8_t nsapi,
void *mmcontext)
{
@ -181,6 +182,13 @@ int sndcp_unitdata_req(struct msgb *msg, struct gprs_llc_lle *lle, uint8_t nsapi
/* Identifiers from UP: (TLLI, SAPI) + (BVCI, NSEI) */
if (msg->len > lle->params.n201_u - (sizeof(*sch) + sizeof(*suh))) {
LOGP(DSNDCP, LOGL_ERROR, "Message length %u > N201-U (%u): "
"SNDCP Fragmentation not yet implemented\n",
msg->len, lle->params.n201_u);
return -EIO;
}
sne = sndcp_entity_by_lle(lle, nsapi);
if (!sne) {
LOGP(DSNDCP, LOGL_ERROR, "Cannot find SNDCP Entity\n");