Re: [FFmpeg-devel] [PATCH 3/3] avformat/dashdec: avoid calling strlen multiple times
On Mon, Jan 24, 2022 at 11:48:22AM +0800, Steven Liu wrote: > 于2022年1月23日周日 11:52写道: > > > > From: Limin Wang > > > > Signed-off-by: Limin Wang > > --- > > libavformat/dashdec.c | 6 -- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c > > index 0d21989..211d77f 100644 > > --- a/libavformat/dashdec.c > > +++ b/libavformat/dashdec.c > > @@ -403,6 +403,7 @@ static int open_url(AVFormatContext *s, AVIOContext > > **pb, const char *url, > > DASHContext *c = s->priv_data; > > AVDictionary *tmp = NULL; > > const char *proto_name = NULL; > > +int proto_name_len; > > int ret; > > > > if (av_strstart(url, "crypto", NULL)) { > > @@ -416,6 +417,7 @@ static int open_url(AVFormatContext *s, AVIOContext > > **pb, const char *url, > > if (!proto_name) > > return AVERROR_INVALIDDATA; > > > > +proto_name_len = strlen(proto_name); > > // only http(s) & file are allowed > > if (av_strstart(proto_name, "file", NULL)) { > > if (strcmp(c->allowed_extensions, "ALL") && !av_match_ext(url, > > c->allowed_extensions)) { > > @@ -430,9 +432,9 @@ static int open_url(AVFormatContext *s, AVIOContext > > **pb, const char *url, > > } else > > return AVERROR_INVALIDDATA; > > > > -if (!strncmp(proto_name, url, strlen(proto_name)) && > > url[strlen(proto_name)] == ':') > > +if (!strncmp(proto_name, url, proto_name_len) && url[proto_name_len] > > == ':') > > ; > > -else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url > > + 7, strlen(proto_name)) && url[7 + strlen(proto_name)] == ':') > > +else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url > > + 7, proto_name_len) && url[7 + proto_name_len] == ':') > > ; > > else if (strcmp(proto_name, "file") || !strncmp(url, "file,", 5)) > > return AVERROR_INVALIDDATA; > > -- > > 1.8.3.1 > > > > ___ > > ffmpeg-devel mailing list > > ffmpeg-devel@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > To unsubscribe, visit link above, or email > > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > > lgtm thanks, will push the patch set tomorrow if no other comments. > > > Thanks -- Thanks, Limin Wang ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 3/3] avformat/dashdec: avoid calling strlen multiple times
于2022年1月23日周日 11:52写道: > > From: Limin Wang > > Signed-off-by: Limin Wang > --- > libavformat/dashdec.c | 6 -- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c > index 0d21989..211d77f 100644 > --- a/libavformat/dashdec.c > +++ b/libavformat/dashdec.c > @@ -403,6 +403,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, > const char *url, > DASHContext *c = s->priv_data; > AVDictionary *tmp = NULL; > const char *proto_name = NULL; > +int proto_name_len; > int ret; > > if (av_strstart(url, "crypto", NULL)) { > @@ -416,6 +417,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, > const char *url, > if (!proto_name) > return AVERROR_INVALIDDATA; > > +proto_name_len = strlen(proto_name); > // only http(s) & file are allowed > if (av_strstart(proto_name, "file", NULL)) { > if (strcmp(c->allowed_extensions, "ALL") && !av_match_ext(url, > c->allowed_extensions)) { > @@ -430,9 +432,9 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, > const char *url, > } else > return AVERROR_INVALIDDATA; > > -if (!strncmp(proto_name, url, strlen(proto_name)) && > url[strlen(proto_name)] == ':') > +if (!strncmp(proto_name, url, proto_name_len) && url[proto_name_len] == > ':') > ; > -else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url + > 7, strlen(proto_name)) && url[7 + strlen(proto_name)] == ':') > +else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url + > 7, proto_name_len) && url[7 + proto_name_len] == ':') > ; > else if (strcmp(proto_name, "file") || !strncmp(url, "file,", 5)) > return AVERROR_INVALIDDATA; > -- > 1.8.3.1 > > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". lgtm Thanks ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH 3/3] avformat/dashdec: avoid calling strlen multiple times
From: Limin Wang Signed-off-by: Limin Wang --- libavformat/dashdec.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 0d21989..211d77f 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -403,6 +403,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url, DASHContext *c = s->priv_data; AVDictionary *tmp = NULL; const char *proto_name = NULL; +int proto_name_len; int ret; if (av_strstart(url, "crypto", NULL)) { @@ -416,6 +417,7 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url, if (!proto_name) return AVERROR_INVALIDDATA; +proto_name_len = strlen(proto_name); // only http(s) & file are allowed if (av_strstart(proto_name, "file", NULL)) { if (strcmp(c->allowed_extensions, "ALL") && !av_match_ext(url, c->allowed_extensions)) { @@ -430,9 +432,9 @@ static int open_url(AVFormatContext *s, AVIOContext **pb, const char *url, } else return AVERROR_INVALIDDATA; -if (!strncmp(proto_name, url, strlen(proto_name)) && url[strlen(proto_name)] == ':') +if (!strncmp(proto_name, url, proto_name_len) && url[proto_name_len] == ':') ; -else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url + 7, strlen(proto_name)) && url[7 + strlen(proto_name)] == ':') +else if (av_strstart(url, "crypto", NULL) && !strncmp(proto_name, url + 7, proto_name_len) && url[7 + proto_name_len] == ':') ; else if (strcmp(proto_name, "file") || !strncmp(url, "file,", 5)) return AVERROR_INVALIDDATA; -- 1.8.3.1 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".