ussd: Make sure that we at least have 8 bytes when decoding the string
The actual gsm_7bit_decode can still cause a buffer overrun
but at least we are safe until this point.
diff --git a/src/gsm0480.c b/src/gsm0480.c
index 73be8ac..4b1471f 100644
--- a/src/gsm0480.c
+++ b/src/gsm0480.c
@@ -386,6 +386,12 @@
int num_chars;
uint8_t dcs;
+
+ /* we need at least that much */
+ if (length < 8)
+ return 0;
+
+
if (uss_req_data[0] == GSM_0480_SEQUENCE_TAG) {
if (uss_req_data[2] == ASN1_OCTET_STRING_TAG) {
dcs = uss_req_data[4];