On Fri, Apr 17, 2020 at 04:41:44PM +0200, Andreas Rheinhardt wrote: > lance.lmw...@gmail.com: > > From: Limin Wang <lance.lmw...@gmail.com> > > > > Signed-off-by: Limin Wang <lance.lmw...@gmail.com> > > --- > > libavcodec/bsf.c | 10 ++-------- > > 1 file changed, 2 insertions(+), 8 deletions(-) > > > > diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c > > index 7b96183e64..c4c939c205 100644 > > --- a/libavcodec/bsf.c > > +++ b/libavcodec/bsf.c > > @@ -533,7 +533,7 @@ end: > > int av_bsf_list_parse_str(const char *str, AVBSFContext **bsf_lst) > > { > > AVBSFList *lst; > > - char *bsf_str, *buf, *dup, *saveptr; > > + char *bsf_str, *buf, *dup; > > int ret; > > > > if (!str) > > @@ -548,16 +548,10 @@ int av_bsf_list_parse_str(const char *str, > > AVBSFContext **bsf_lst) > > goto end; > > } > > > > - while (1) { > > - bsf_str = av_strtok(buf, ",", &saveptr); > > - if (!bsf_str) > > - break; > > - > > + while (bsf_str = av_strtok(buf, ",", &buf)) { > > ret = bsf_parse_single(bsf_str, lst); > > if (ret < 0) > > goto end; > > - > > - buf = NULL; > > } > > > > ret = av_bsf_list_finalize(&lst, bsf_lst); > > > This is against the documentation of av_strtok() which states: > * On the first call to av_strtok(), s should point to the string to > * parse, and the value of saveptr is ignored. In subsequent calls, s > * should be NULL, and saveptr should be unchanged since the previous > * call. > > It works now, but it is not guaranteed to work.
I don't know why the subsequent calls, s should be NULL. I think it's willing, not must. If we're clear, why not to make the buf point to the next token, it looks more simple and easy to read. Also, a lot of such case have used in existing code. [lmwang@vpn ffmpeg]$ grep av_strtok libavformat/*.c |grep while libavformat/dashdec.c: while (mpdName = av_strtok(tmp, "/", &tmp)) { libavformat/ftp.c: while(fact = av_strtok(mlsd, ";", &mlsd)) { libavformat/http.c: while ((param = av_strtok(next_param, ";", &next_param))) { libavformat/http.c: while ((cookie = av_strtok(next, "\n", &next)) && !ret) { > > - Andreas > _______________________________________________ > 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". -- 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".