Re: [PATCH] Fix EIR name parsing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bruna,

> Some vendors put a NUL byte terminator on EIR name field. If that is the
> case, use -1 as string length so g_utf8_validade() can parse it
> properly.
> ---
>  src/eir.c |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
> 
> diff --git a/src/eir.c b/src/eir.c
> index e4554e8..3826f55 100644
> --- a/src/eir.c
> +++ b/src/eir.c
> @@ -119,6 +119,7 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data, uint8_t eir_len)
>  
>  	while (len < eir_len - 1) {
>  		uint8_t field_len = eir_data[0];
> +		ssize_t name_len;
>  
>  		/* Check for the end of EIR */
>  		if (field_len == 0)
> @@ -154,8 +155,16 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data, uint8_t eir_len)
>  
>  		case EIR_NAME_SHORT:
>  		case EIR_NAME_COMPLETE:
> +			/* Some vendors put a NUL byte terminator. If that is
> +			 * the case, use -1 as string length so
> +			 * g_utf8_validade() can parse it properly. */
> +			if (eir_data[field_len] == '\0')
> +				name_len = -1;
> +			else
> +				name_len = field_len - 1;
> +

why do we have to do -1 here? We could just reduce the field_len by 1.
What is the point in g_utf8_validate having to figure out the length of
the data. We do already know it.

Regards

Marcel


--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux