aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2017-06-02 14:47:16 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2017-06-04 14:11:39 +0200
commit641b38c9c8a2d8d1e3b94c5d38f2e790ccad990e (patch)
treef7aa828cb5d1393dd1d7b6b3397c5b8fede64583
parent3764e3a2c528def382193e64a6d602bd5772f756 (diff)
downloadffmpeg-641b38c9c8a2d8d1e3b94c5d38f2e790ccad990e.tar.gz
avformat/options: log filename on open
The loglevel is choosen so that the main filename and any images of multi image sequences are shown only at debug level to avoid clutter. This makes exploits in playlists more visible. As they would show accesses to private/sensitive files Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit 53e0d5d7247548743e13c59c35e59fc2161e9582) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavformat/options.c12
-rw-r--r--libavformat/utils.c2
2 files changed, 13 insertions, 1 deletions
diff --git a/libavformat/options.c b/libavformat/options.c
index 8fe0017196..9d5593e060 100644
--- a/libavformat/options.c
+++ b/libavformat/options.c
@@ -102,6 +102,18 @@ static const AVClass av_format_context_class = {
static int io_open_default(AVFormatContext *s, AVIOContext **pb,
const char *url, int flags, AVDictionary **options)
{
+ int loglevel;
+
+ if (!strcmp(url, s->filename) ||
+ s->iformat && !strcmp(s->iformat->name, "image2") ||
+ s->oformat && !strcmp(s->oformat->name, "image2")
+ ) {
+ loglevel = AV_LOG_DEBUG;
+ } else
+ loglevel = AV_LOG_INFO;
+
+ av_log(s, loglevel, "Opening \'%s\' for %s\n", url, flags & AVIO_FLAG_WRITE ? "writing" : "reading");
+
#if FF_API_OLD_OPEN_CALLBACKS
FF_DISABLE_DEPRECATION_WARNINGS
if (s->open_cb)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index f90aeb20c1..eaad2a4b17 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -448,6 +448,7 @@ int avformat_open_input(AVFormatContext **ps, const char *filename,
if ((ret = av_opt_set_dict(s, &tmp)) < 0)
goto fail;
+ av_strlcpy(s->filename, filename ? filename : "", sizeof(s->filename));
if ((ret = init_input(s, filename, &tmp)) < 0)
goto fail;
s->probe_score = ret;
@@ -477,7 +478,6 @@ int avformat_open_input(AVFormatContext **ps, const char *filename,
}
s->duration = s->start_time = AV_NOPTS_VALUE;
- av_strlcpy(s->filename, filename ? filename : "", sizeof(s->filename));
/* Allocate private data. */
if (s->iformat->priv_data_size > 0) {