[FFmpeg-devel] [PATCH v6 1/3] avformat/mxfdec: set toolkit version metadata

Tomas Härdin tjoppen at acc.umu.se
Mon Feb 1 21:14:25 EET 2021


mån 2021-02-01 klockan 18:23 +0100 skrev Andreas Rheinhardt:
> Tomas Härdin:
> > mån 2021-02-01 klockan 07:50 +0800 skrev lance.lmwang at gmail.com:
> > > From: Limin Wang <lance.lmwang at gmail.com>
> > > 
> > > Please check the string of toolkit version with below command:
> > > ./ffmpeg -i ../fate-suite/mxf/Sony-00001.mxf -c:v copy -c:a copy out.mxf
> > > ./ffmpeg -i out.mxf
> > > ....
> > > toolkit_version : 58.65.101
> > > 
> > > Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> > > ---
> > >  libavformat/mxfdec.c                | 25 +++++++++++++++++++++++++
> > >  tests/ref/fate/mxf-probe-applehdr10 |  1 +
> > >  tests/ref/fate/mxf-probe-dnxhd      |  1 +
> > >  3 files changed, 27 insertions(+)
> > > 
> > > diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
> > > index afff204..61c8104 100644
> > > --- a/libavformat/mxfdec.c
> > > +++ b/libavformat/mxfdec.c
> > > @@ -1970,6 +1970,18 @@ static int mxf_umid_to_str(UID ul, UID uid, char **str)
> > >      return 0;
> > >  }
> > >  
> > > +static int mxf_version_to_str(uint16_t major, uint16_t minor, uint16_t tertiary, char **str)
> > > +{
> > > +    int size = sizeof(major) * 5 + 1;
> > 
> > This is just wrong. Should be 3*5+2+1 = 18.
> > 
> > > +
> > > +    *str = av_mallocz(size);
> > > +    if (!*str)
> > > +        return AVERROR(ENOMEM);
> > > +
> > > +    snprintf(*str, size, "%d.%d.%d", major, minor, tertiary);
> > 
> > snprintf() is not safe - *str can end up not NUL terminated
> > 
> Not true -- snprintf always zero-terminates (and truncates the output if
> it needs to do so) unless size is zero (which it is not).

Ack, you're right. I was thinking of strn*

> But nevertheless av_asprintf would be better IMO.

Yes

/Tomas



More information about the ffmpeg-devel mailing list