From 941257bec615acbf59d4be8a7df86039c040ab88 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Mon, 17 Sep 2012 11:48:03 -0500 Subject: smsutil: Fix CR padding logic for 7-bit case --- src/smsutil.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/smsutil.c') diff --git a/src/smsutil.c b/src/smsutil.c index b4d129ff..1e9b471c 100644 --- a/src/smsutil.c +++ b/src/smsutil.c @@ -4103,11 +4103,19 @@ char *cbs_decode_text(GSList *cbs_list, char *iso639_lang) /* * CR is a padding character, which means we can - * safely discard everything afterwards + * safely discard everything afterwards if there are + * only trailing CR characters. */ for (; i < written; i++, bufsize++) { - if (unpacked[i] == '\r') - break; + if (unpacked[i] == '\r') { + unsigned int t; + + t = strspn((const char *) unpacked + i, + "\r"); + + if (t + i == written) + break; + } buf[bufsize] = unpacked[i]; } -- cgit v1.2.3