[FFmpeg-devel] [PATCH] cmdutils: remove the current working directory from the DLL search path on win32
Michael Niedermayer
michael at niedermayer.cc
Mon Aug 8 19:40:30 EEST 2016
On Tue, Aug 09, 2016 at 12:25:21AM +1000, Matt Oliver wrote:
> On 8 August 2016 at 23:27, Hendrik Leppkes <h.leppkes at gmail.com> wrote:
>
> > ---
> > cmdutils.c | 9 +++++++++
> > cmdutils.h | 5 +++++
> > ffmpeg.c | 2 ++
> > ffplay.c | 2 ++
> > ffprobe.c | 2 ++
> > ffserver.c | 1 +
> > 6 files changed, 21 insertions(+)
> >
> > diff --git a/cmdutils.c b/cmdutils.c
> > index 03a4836..6960f8c 100644
> > --- a/cmdutils.c
> > +++ b/cmdutils.c
> > @@ -107,6 +107,15 @@ static void log_callback_report(void *ptr, int level,
> > const char *fmt, va_list v
> > }
> > }
> >
> > +void init_dynload(void)
> > +{
> > +#ifdef _WIN32
> > + /* Calling SetDllDirectory with the empty string (but not NULL)
> > removes the
> > + * current working directory from the DLL search path as a security
> > pre-caution. */
> > + SetDllDirectory("");
> > +#endif
> > +}
> > +
> > static void (*program_exit)(int ret);
> >
> > void register_exit(void (*cb)(int ret))
> > diff --git a/cmdutils.h b/cmdutils.h
> > index 83ea4ad..67bf484 100644
> > --- a/cmdutils.h
> > +++ b/cmdutils.h
> > @@ -62,6 +62,11 @@ void register_exit(void (*cb)(int ret));
> > void exit_program(int ret) av_noreturn;
> >
> > /**
> > + * Initialize dynamic library loading
> > + */
> > +void init_dynload(void);
> > +
> > +/**
> > * Initialize the cmdutils option system, in particular
> > * allocate the *_opts contexts.
> > */
> > diff --git a/ffmpeg.c b/ffmpeg.c
> > index d6282bd..bae515d 100644
> > --- a/ffmpeg.c
> > +++ b/ffmpeg.c
> > @@ -4293,6 +4293,8 @@ int main(int argc, char **argv)
> > int ret;
> > int64_t ti;
> >
> > + init_dynload();
> > +
> > register_exit(ffmpeg_cleanup);
> >
> > setvbuf(stderr,NULL,_IONBF,0); /* win32 runtime needs this */
> > diff --git a/ffplay.c b/ffplay.c
> > index 651e0cf..adbe9cb 100644
> > --- a/ffplay.c
> > +++ b/ffplay.c
> > @@ -3776,6 +3776,8 @@ int main(int argc, char **argv)
> > char dummy_videodriver[] = "SDL_VIDEODRIVER=dummy";
> > char alsa_bufsize[] = "SDL_AUDIO_ALSA_SET_BUFFER_SIZE=1";
> >
> > + init_dynload();
> > +
> > av_log_set_flags(AV_LOG_SKIP_REPEATED);
> > parse_loglevel(argc, argv, options);
> >
> > diff --git a/ffprobe.c b/ffprobe.c
> > index a49be6a..657867d 100644
> > --- a/ffprobe.c
> > +++ b/ffprobe.c
> > @@ -3241,6 +3241,8 @@ int main(int argc, char **argv)
> > char *w_name = NULL, *w_args = NULL;
> > int ret, i;
> >
> > + init_dynload();
> > +
> > av_log_set_flags(AV_LOG_SKIP_REPEATED);
> > register_exit(ffprobe_cleanup);
> >
> > diff --git a/ffserver.c b/ffserver.c
> > index 1a27583..453d790 100644
> > --- a/ffserver.c
> > +++ b/ffserver.c
> > @@ -3980,6 +3980,7 @@ int main(int argc, char **argv)
> > int cfg_parsed;
> > int ret = EXIT_FAILURE;
> >
> > + init_dynload();
> >
> > config.filename = av_strdup("/etc/ffserver.conf");
> >
> > --
> >
>
> LGTM
applied
thanks to all
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Those who are too smart to engage in politics are punished by being
governed by those who are dumber. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160808/936684c0/attachment.sig>
More information about the ffmpeg-devel
mailing list