2010-10-13 12:49:30

by Lukasz Pawlik

[permalink] [raw]
Subject: [PATCH] Fix problem with operator name length

To follow the HFP specification we must ensure that network operator name
will have at maximum 16 characters. In current implementation we do not
check this constraint. This patch fix this. Now operator name with more
than 16 characters will be truncated to 16 characters.
---
audio/telephony-maemo6.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/audio/telephony-maemo6.c b/audio/telephony-maemo6.c
index 1aac034..bbd2d2f 100644
--- a/audio/telephony-maemo6.c
+++ b/audio/telephony-maemo6.c
@@ -1498,8 +1498,7 @@ static void update_operator_name(const char *name)
return;

g_free(net.operator_name);
- net.operator_name = g_strdup(name);
-
+ net.operator_name = g_strndup(name, 16);
DBG("telephony-maemo6: operator name updated: %s", name);
}

--
1.7.0.4



2010-10-13 15:09:54

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] Fix problem with operator name length

Hi Dmitriy,

First of all, don't top-post on this list.

On Wed, Oct 13, 2010, Dmitriy Paliy wrote:
> At the moment it is received in ascii from csd since not all car kits
> can handle utf8.

Ok, in that case it should be safe. I went ahead and and pushed the
patch along with a clarification in the commit message about this
guarantee that the csd API gives.

Johan


2010-10-13 14:52:51

by Dmitriy Paliy

[permalink] [raw]
Subject: Re: [PATCH] Fix problem with operator name length

Hi,

At the moment it is received in ascii from csd since not all car kits
can handle utf8.

Br,
Dmitriy

On Wed, 2010-10-13 at 16:19 +0200, ext Johan Hedberg wrote:
> Hi Lukasz,
>
> On Wed, Oct 13, 2010, Lukasz Pawlik wrote:
> > - net.operator_name = g_strdup(name);
> > -
> > + net.operator_name = g_strndup(name, 16);
>
> Is it possible that the the format of the name would be such that byte
> boundaries are not always the same as character boundaries (e.g. UTF-8)?
> If so, using g_strndup sounds dangerous since it assumes one byte per
> character.
>
> Johan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html



2010-10-13 14:19:21

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] Fix problem with operator name length

Hi Lukasz,

On Wed, Oct 13, 2010, Lukasz Pawlik wrote:
> - net.operator_name = g_strdup(name);
> -
> + net.operator_name = g_strndup(name, 16);

Is it possible that the the format of the name would be such that byte
boundaries are not always the same as character boundaries (e.g. UTF-8)?
If so, using g_strndup sounds dangerous since it assumes one byte per
character.

Johan