From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [PATCH] smsutil: <CR> is not necessarily a padding character in CBS message
Date: Fri, 27 Jul 2012 01:02:55 -0500 [thread overview]
Message-ID: <50122F0F.4@gmail.com> (raw)
In-Reply-To: <1343401711-31526-1-git-send-email-philippe.nunes@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 3152 bytes --]
Hi Philippe,
On 07/27/2012 10:08 AM, Philippe Nunes wrote:
> ---
> src/smsutil.c | 37 ++++++++++++++++++++++++++++++-------
> 1 file changed, 30 insertions(+), 7 deletions(-)
>
The patch looks 'correct', but a few points below:
> diff --git a/src/smsutil.c b/src/smsutil.c
> index a541964..59eb7b1 100644
> --- a/src/smsutil.c
> +++ b/src/smsutil.c
> @@ -4090,7 +4090,7 @@ char *cbs_decode_text(GSList *cbs_list, char *iso639_lang)
> unsigned char unpacked[CBS_MAX_GSM_CHARS];
> long written;
> int max_chars;
> - int i;
> + int i, j;
>
> max_chars =
> sms_text_capacity_gsm(CBS_MAX_GSM_CHARS, taken);
> @@ -4102,12 +4102,24 @@ char *cbs_decode_text(GSList *cbs_list, char *iso639_lang)
> i = iso639 ? 3 : 0;
>
> /*
> - * CR is a padding character, which means we can
> - * safely discard everything afterwards
> + * CR can be used as a padding character, which means
> + * we can safely discard everything afterwards
> */
> +
> for (; i< written; i++, bufsize++) {
> - if (unpacked[i] == '\r')
> - break;
> + if (unpacked[i] == '\r') {
> + /*
> + * check if this is a padding character or
> + * if it is a wanted<CR>
> + */
> + for (j=i+1; j< written; j++)
Why are you breaking the coding style here? Specifically item M3.
> + if (unpacked[j] != '\r')
> + break;
> +
> + if (j == written)
> + break;
> + }
> +
>
> buf[bufsize] = unpacked[i];
> }
> @@ -4135,8 +4147,19 @@ 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;
> +
> + while (j< max_offset) {
> + if (ud[j] != 0x00 || ud[j+1] != '\r')
> + break;
> +
> + j += 2;
> + }
> +
> + if (j == max_offset)
> + break;
> + }
Two points here.
First of all, you're again breaking the coding style item M3. I know
the existing code is also in violation, but then the first patch in this
series should be fixing that violation, and then adding the new code on
top. I'm not advocating that you fix all of smsutil.c, but at least fix
up the local area you will be touching first.
Secondly, mildly nitpicking, but why are you using a 'for' loop in the
first chunk and now a while loop here? At the very least you can make
the code shorter and be more consistent.
>
> buf[bufsize] = ud[i];
> buf[bufsize + 1] = ud[i+1];
I'd really prefer that patches like this one that fix bugs in the
{sms,stk}util.c are accompanied by changes / additions to the respective
unit test files. Especially in this case, as I assume that you have a
set of test data that this is failing on.
That way I can immediately reference the test data, sanity check it and
run the unit test to verify that the code and your changes are working
as expected. Furthermore, any regressions are more easily caught in the
future.
Regards,
-Denis
prev parent reply other threads:[~2012-07-27 6:02 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-27 15:08 [PATCH] smsutil: <CR> is not necessarily a padding character in CBS message Philippe Nunes
2012-07-27 6:02 ` Denis Kenzior [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50122F0F.4@gmail.com \
--to=denkenz@gmail.com \
--cc=ofono@ofono.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.