diff options
author | Philippe Nunes <philippe.nunes@linux.intel.com> | 2012-08-31 17:03:57 +0200 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2012-09-17 11:51:11 -0500 |
commit | 27b63a96c3e4fcc19c43c9beedf9a69626b94937 (patch) | |
tree | 996590f6f8b2b818ee33d1bc1bbe054943f48886 | |
parent | 941257bec615acbf59d4be8a7df86039c040ab88 (diff) | |
download | ofono-27b63a96c3e4fcc19c43c9beedf9a69626b94937.tar.bz2 |
smsutil: <CR> is not necessarily a CBS padding character
-rw-r--r-- | src/smsutil.c | 14 |
1 files changed, 12 insertions, 2 deletions
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]; |