gsm0480: parse all SS info elements in a message

Some SS messages (e.g. RELEASE COMPLETE) may contai multiple
IEs (Information Elements). Let's parse them all.

Change-Id: I20cc59c25fdbda176bcf76437174cda829518d60
diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c
index e3856a5..0f30250 100644
--- a/src/gsm/gsm0480.c
+++ b/src/gsm/gsm0480.c
@@ -334,11 +334,15 @@
 	uint8_t iei;
 	uint8_t iei_length;
 
+	/* We need at least two bytes */
+	if (len < 2)
+		return 0;
+
 	iei = ss_ie[0];
 	iei_length = ss_ie[1];
 
 	/* If the data does not fit, report an error */
-	if (len - 2 < iei_length)
+	if (iei_length + 2 > len)
 		return 0;
 
 	switch (iei) {
@@ -356,6 +360,11 @@
 		break;
 	}
 
+	/* A message may contain multiple IEs */
+	if (iei_length + 2 + 2 < len)
+		rc &= parse_ss_info_elements(ss_ie + iei_length + 2,
+			len - iei_length - 2, req);
+
 	return rc;
 }