diff --git a/src/smsutil.c b/src/smsutil.c index 1e9b471c..d1bb894e 100644 --- a/src/smsutil.c +++ b/src/smsutil.c @@ -4143,8 +4143,18 @@ char *cbs_decode_text(GSList *cbs_list, char *iso639_lang) } while (i < max_offset) { - if (ud[i] == 0x00 && ud[i+1] == '\r') - break; + if (ud[i] == 0x00 && ud[i+1] == '\r') { + int j = i + 2; + + for (; j < max_offset; j = j + 2) + if (ud[j] != 0x00 || + ud[j + 1] != + '\r') + break; + + if (j == max_offset) + break; + } buf[bufsize] = ud[i]; buf[bufsize + 1] = ud[i + 1];