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

... since we don't do fragmentation yet
diff --git a/openbsc/src/gprs/gprs_sndcp.c b/openbsc/src/gprs/gprs_sndcp.c
index 6008025..72962dc 100644
--- a/openbsc/src/gprs/gprs_sndcp.c
+++ b/openbsc/src/gprs/gprs_sndcp.c
@@ -172,6 +172,7 @@
 	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 @@
 
 	/* 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");