aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gprs/gprs_sndcp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gprs/gprs_sndcp.c b/src/gprs/gprs_sndcp.c
index 23d1e9a2..d9aa1e57 100644
--- a/src/gprs/gprs_sndcp.c
+++ b/src/gprs/gprs_sndcp.c
@@ -1120,6 +1120,14 @@ int sndcp_sn_xid_ind(struct gprs_llc_xid_field *xid_field_indication,
OSMO_ASSERT(xid_field_response);
OSMO_ASSERT(lle);
+ /* Some phones send zero byte length SNDCP frames
+ * and do require a confirmation response. */
+ if (xid_field_indication->data_len == 0) {
+ xid_field_response->type = GPRS_LLC_XID_T_L3_PAR;
+ xid_field_response->data_len = 0;
+ return 0;
+ }
+
/* Parse SNDCP-CID XID-Field */
comp_fields = gprs_sndcp_parse_xid(&version, lle->llme,
xid_field_indication->data,