summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilippe Nunes <philippe.nunes@linux.intel.com>2012-08-31 17:03:57 +0200
committerDenis Kenzior <denkenz@gmail.com>2012-09-17 11:51:11 -0500
commit27b63a96c3e4fcc19c43c9beedf9a69626b94937 (patch)
tree996590f6f8b2b818ee33d1bc1bbe054943f48886
parent941257bec615acbf59d4be8a7df86039c040ab88 (diff)
downloadofono-27b63a96c3e4fcc19c43c9beedf9a69626b94937.tar.bz2
smsutil: <CR> is not necessarily a CBS padding character
-rw-r--r--src/smsutil.c14
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];