[libbluray-devel] [PATCH 2/4] The number of bytes used by fixed-length character fields is stored as Uint8 (ECMA 1/7.2.12).

Petri Hintukainen phintuka at users.sourceforge.net
Wed May 31 10:29:48 CEST 2017


ti, 2017-05-30 kello 14:00 +0200, Andreas Zelend kirjoitti:
> From: ace20022 <ace20022 at ymail.com>
> 
> ---
>  src/ecma167.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/ecma167.c b/src/ecma167.c
> index 814e7af..8ef6c1b 100644
> --- a/src/ecma167.c
> +++ b/src/ecma167.c
> @@ -37,7 +37,7 @@
>   */
>  
>  /* fixed-length dstring, ECMA 1/7.2.12 */
> -static size_t _decode_dstring(const uint8_t *p, size_t field_length,
> uint8_t *str)
> +static uint8_t _decode_dstring(const uint8_t *p, uint8_t
> field_length, uint8_t *str)
> {
>      size_t length;
> 

I didn't find any limitation for field length. Recorded string length
is limited to 255 (because of it is stored in Uint8).
This would mean field length can be 256 (or even more if there's
padding) ?

> @@ -51,7 +51,7 @@ static size_t _decode_dstring(const uint8_t *p,
> size_t field_length, uint8_t *st
>          length = field_length;
>      }
>      memcpy(str, p, length);
> -    return length;
> +    return (uint8_t)length;
>  }
>  
>  /* Extent Descriptor (ECMA 167, 3/7.1) */


More information about the libbluray-devel mailing list