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>tags/n3.4
| @@ -102,6 +102,18 @@ static const AVClass av_format_context_class = { | |||||
| static int io_open_default(AVFormatContext *s, AVIOContext **pb, | static int io_open_default(AVFormatContext *s, AVIOContext **pb, | ||||
| const char *url, int flags, AVDictionary **options) | 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 | #if FF_API_OLD_OPEN_CALLBACKS | ||||
| FF_DISABLE_DEPRECATION_WARNINGS | FF_DISABLE_DEPRECATION_WARNINGS | ||||
| if (s->open_cb) | if (s->open_cb) | ||||
| @@ -533,6 +533,7 @@ int avformat_open_input(AVFormatContext **ps, const char *filename, | |||||
| if ((ret = av_opt_set_dict(s, &tmp)) < 0) | if ((ret = av_opt_set_dict(s, &tmp)) < 0) | ||||
| goto fail; | goto fail; | ||||
| av_strlcpy(s->filename, filename ? filename : "", sizeof(s->filename)); | |||||
| if ((ret = init_input(s, filename, &tmp)) < 0) | if ((ret = init_input(s, filename, &tmp)) < 0) | ||||
| goto fail; | goto fail; | ||||
| s->probe_score = ret; | s->probe_score = ret; | ||||
| @@ -570,7 +571,6 @@ int avformat_open_input(AVFormatContext **ps, const char *filename, | |||||
| } | } | ||||
| s->duration = s->start_time = AV_NOPTS_VALUE; | s->duration = s->start_time = AV_NOPTS_VALUE; | ||||
| av_strlcpy(s->filename, filename ? filename : "", sizeof(s->filename)); | |||||
| /* Allocate private data. */ | /* Allocate private data. */ | ||||
| if (s->iformat->priv_data_size > 0) { | if (s->iformat->priv_data_size > 0) { | ||||