[FFmpeg-devel] [PATCH 1/2] libavfilter/formats: Fix parsing of channel specifications with a trailing 'c'.

Michael Niedermayer michaelni at gmx.at
Tue Jun 9 22:50:11 CEST 2015


On Tue, Jun 09, 2015 at 04:55:56AM +0200, Simon Thelen wrote:
> Fix an off-by-one in checking tail for trailing characters

> and ensure
> that the parsing helper is only called for unknown channel layouts.

in which case does this make a difference / how can i reproduce the
issue this fixes ?


> 
> Note: This removes the check ensuring that the channel layout is > 0 and
> < 63.
> 
> Signed-off-by: Simon Thelen <ffmpeg-dev at c-14.de>
> ---
> If the check ensuring 0 < chlayout < 63 is necessary, I can send a v2
> adding it back

i think its a good idea to keep the check or why shuld it be removed ?


> 
>  libavfilter/formats.c | 19 ++++++++-----------
>  1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/libavfilter/formats.c b/libavfilter/formats.c
> index 4f9773b..2e00f30 100644
> --- a/libavfilter/formats.c
> +++ b/libavfilter/formats.c
> @@ -637,20 +637,17 @@ int ff_parse_channel_layout(int64_t *ret, int *nret, const char *arg,
>                              void *log_ctx)
>  {
>      char *tail;
> -    int64_t chlayout, count;
> -
> -    if (nret) {
> -        count = strtol(arg, &tail, 10);
> -        if (*tail == 'c' && !tail[1] && count > 0 && count < 63) {
> -            *nret = count;
> -            *ret = 0;
> -            return 0;
> -        }
> -    }
> +    int64_t chlayout;
> +
>      chlayout = av_get_channel_layout(arg);
>      if (chlayout == 0) {
>          chlayout = strtol(arg, &tail, 10);
> -        if (*tail || chlayout == 0) {
> +        if (*(tail + 1) || chlayout == 0) {

doesnt *(tail + 1) read from potentially after the array ?

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150609/7b9e9e12/attachment.asc>


More information about the ffmpeg-devel mailing list