diff options
author | Slava Monich <slava.monich@jolla.com> | 2017-01-01 20:48:02 +0300 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2016-12-30 18:19:21 -0600 |
commit | a1df13a3bc9143ef83c1449a45572e9fbf85a7c3 (patch) | |
tree | 87223b6dc75127d26a7c86e15d4f56d7f9e69a73 /src/smsutil.c | |
parent | a011fea4a408615b5d0d3ae56282d06a2fe07cd0 (diff) | |
download | ofono-a1df13a3bc9143ef83c1449a45572e9fbf85a7c3.tar.gz |
smsutil: Prevent invalid access in cbs_decode_text
Valgrind was complaining about it like this:
==18099== Conditional jump or move depends on uninitialised value(s)
==18099== at 0x4C32281: strspn
==18099== by 0x41286B: cbs_decode_text (smsutil.c:4140)
==18099== by 0x40675C: test_cbs_encode_decode (test-sms.c:1417)
Diffstat (limited to 'src/smsutil.c')
-rw-r--r-- | src/smsutil.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/smsutil.c b/src/smsutil.c index 22129945..24dcfaa7 100644 --- a/src/smsutil.c +++ b/src/smsutil.c @@ -4135,12 +4135,13 @@ char *cbs_decode_text(GSList *cbs_list, char *iso639_lang) */ for (; i < written; i++, bufsize++) { if (unpacked[i] == '\r') { - int t; + int j; - t = strspn((const char *) unpacked + i, - "\r"); + for (j = i + 1; j < written; j++) + if (unpacked[j] != '\r') + break; - if (t + i == written) + if (j == written) break; } |