[FFmpeg-devel] [PATCH 3/4] lavu/avstring: add av_append_path_component() funcion

Mariusz Szczepańczyk mszczepanczyk at gmail.com
Thu Mar 26 17:39:49 CET 2015


On Thu, Mar 26, 2015 at 3:40 PM, Michael Niedermayer <michaelni at gmx.at>
wrote:

> On Thu, Mar 26, 2015 at 01:25:19AM +0100, Mariusz Szczepańczyk wrote:
> > From: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> >
> > Convinient function to build paths.
> > ---
> >  libavutil/avstring.c    | 43 +++++++++++++++++++++++++++++++++++++++++++
> >  libavutil/avstring.h    | 10 ++++++++++
> >  tests/ref/fate/avstring |  9 +++++++++
> >  3 files changed, 62 insertions(+)
> >
> > diff --git a/libavutil/avstring.c b/libavutil/avstring.c
> > index 25c65b4..f105aa7 100644
> > --- a/libavutil/avstring.c
> > +++ b/libavutil/avstring.c
> > @@ -269,6 +269,35 @@ const char *av_dirname(char *path)
> >      return path;
> >  }
> >
> > +char *av_append_path_component(const char *path, const char *component)
> > +{
> > +    size_t p_len, c_len;
> > +    char *fullpath;
> > +
> > +    if (!path)
> > +        return component ? av_strdup(component) : NULL;
> > +    if (!component)
> > +        return av_strdup(path);
> > +
> > +    p_len = strlen(path);
> > +    c_len = strlen(component);
>
> > +    fullpath = malloc(p_len + c_len + 2);
>
> av_malloc()
>
>
fixed


> > +    if (fullpath) {
> > +        if (p_len) {
>
> > +            strcpy(fullpath, path);
>
> av_strlcpy() is more robust/secure
>
>
fixed


>
> > +            if (c_len) {
> > +                if (fullpath[p_len - 1] != '/' && component[0] != '/')
> > +                    fullpath[p_len++] = '/';
> > +                else if (fullpath[p_len - 1] == '/' && component[0] ==
> '/')
> > +                    p_len--;
> > +            }
> > +        }
> > +        strcpy(&fullpath[p_len], component);
>
> av_strlcpy()
>

fixed


Mariusz
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-lavu-avstring-add-av_append_path_component-funcion.patch
Type: text/x-diff
Size: 4115 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150326/5d762b1e/attachment.bin>


More information about the ffmpeg-devel mailing list