[FFmpeg-devel] [PATCH] avformat/hlsenc: Only append postfix to fmp4 init filename if not in the subdir
Dave Johansen
davejohansen at gmail.com
Fri Nov 3 06:44:49 EET 2023
---
libavformat/hlsenc.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 4ef84c05c1..dd1a461cce 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -1931,6 +1931,30 @@ fail:
return ret;
}
+static int validate_subdir(const char *fn)
+{
+ const char *subdir_name;
+ char *fn_dup = NULL;
+ int ret = 0;
+
+ if (!fn)
+ return AVERROR(EINVAL);
+
+ fn_dup = av_strdup(fn);
+ if (!fn_dup)
+ return AVERROR(ENOMEM);
+ subdir_name = av_dirname(fn_dup);
+
+ if (!av_stristr(subdir_name, "%v")) {
+ ret = AVERROR(EINVAL);
+ goto fail;
+ }
+
+fail:
+ av_freep(&fn_dup);
+ return ret;
+}
+
static int format_name(const char *buf, char **s, int index, const char *varname)
{
const char *proto, *dir;
@@ -3019,7 +3043,7 @@ static int hls_init(AVFormatContext *s)
av_freep(&vs->fmp4_init_filename);
ret = format_name(hls->fmp4_init_filename,
&vs->fmp4_init_filename, i, vs->varname);
- } else {
+ } else if (validate_subdir(s->url) < 0) {
ret = append_postfix(vs->fmp4_init_filename, fmp4_init_filename_len, i);
}
if (ret < 0)
--
2.39.2 (Apple Git-143)
More information about the ffmpeg-devel
mailing list