Message ID | 20171120064551.29734-1-lq@chinaffmpeg.org |
---|---|
State | Superseded |
Headers | show |
On 2017/11/20 14:45, Steven Liu wrote: > fix ticket id: #6846 > > Signed-off-by: Steven Liu <lq@chinaffmpeg.org> > --- > libavformat/avio.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/libavformat/avio.c b/libavformat/avio.c > index 4dc468350c..e719326660 100644 > --- a/libavformat/avio.c > +++ b/libavformat/avio.c > @@ -625,6 +625,8 @@ int64_t ffurl_size(URLContext *h) > > int ffurl_get_file_handle(URLContext *h) > { > + if (!h) > + return AVERROR(EINVAL); > if (!h->prot->url_get_file_handle) I think (!h && !h->prot && !h->prot->url_get_file_handle) more better than this > return -1; > return h->prot->url_get_file_handle(h); > @@ -632,6 +634,8 @@ int ffurl_get_file_handle(URLContext *h) > > int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) > { > + if (!h) > + return AVERROR(EINVAL); > if (!h->prot->url_get_multi_file_handle) { > if (!h->prot->url_get_file_handle) > return AVERROR(ENOSYS); > @@ -647,6 +651,8 @@ int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) > > int ffurl_get_short_seek(URLContext *h) > { > + if (!h) > + return AVERROR(EINVAL); > if (!h->prot->url_get_short_seek) > return AVERROR(ENOSYS); > return h->prot->url_get_short_seek(h); > @@ -654,6 +660,8 @@ int ffurl_get_short_seek(URLContext *h) > > int ffurl_shutdown(URLContext *h, int flags) > { > + if (!h) > + return AVERROR(EINVAL); > if (!h->prot->url_shutdown) > return AVERROR(EINVAL); > return h->prot->url_shutdown(h, flags);
> 在 2017年11月20日,15:23,Jun Zhao <mypopydev@gmail.com> 写道: > > > > On 2017/11/20 14:45, Steven Liu wrote: >> fix ticket id: #6846 >> >> Signed-off-by: Steven Liu <lq@chinaffmpeg.org> >> --- >> libavformat/avio.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/libavformat/avio.c b/libavformat/avio.c >> index 4dc468350c..e719326660 100644 >> --- a/libavformat/avio.c >> +++ b/libavformat/avio.c >> @@ -625,6 +625,8 @@ int64_t ffurl_size(URLContext *h) >> >> int ffurl_get_file_handle(URLContext *h) >> { >> + if (!h) >> + return AVERROR(EINVAL); >> if (!h->prot->url_get_file_handle) > I think (!h && !h->prot && !h->prot->url_get_file_handle) more better > than this maybe you mean (!h || !h->port || !h->prot->url_get_file_handle) , is it? > >> return -1; >> return h->prot->url_get_file_handle(h); >> @@ -632,6 +634,8 @@ int ffurl_get_file_handle(URLContext *h) >> >> int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) >> { >> + if (!h) >> + return AVERROR(EINVAL); >> if (!h->prot->url_get_multi_file_handle) { >> if (!h->prot->url_get_file_handle) >> return AVERROR(ENOSYS); >> @@ -647,6 +651,8 @@ int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) >> >> int ffurl_get_short_seek(URLContext *h) >> { >> + if (!h) >> + return AVERROR(EINVAL); >> if (!h->prot->url_get_short_seek) >> return AVERROR(ENOSYS); >> return h->prot->url_get_short_seek(h); >> @@ -654,6 +660,8 @@ int ffurl_get_short_seek(URLContext *h) >> >> int ffurl_shutdown(URLContext *h, int flags) >> { >> + if (!h) >> + return AVERROR(EINVAL); >> if (!h->prot->url_shutdown) >> return AVERROR(EINVAL); >> return h->prot->url_shutdown(h, flags);
On 2017/11/20 15:35, 刘歧 wrote: > >> 在 2017年11月20日,15:23,Jun Zhao <mypopydev@gmail.com> 写道: >> >> >> >> On 2017/11/20 14:45, Steven Liu wrote: >>> fix ticket id: #6846 >>> >>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org> >>> --- >>> libavformat/avio.c | 8 ++++++++ >>> 1 file changed, 8 insertions(+) >>> >>> diff --git a/libavformat/avio.c b/libavformat/avio.c >>> index 4dc468350c..e719326660 100644 >>> --- a/libavformat/avio.c >>> +++ b/libavformat/avio.c >>> @@ -625,6 +625,8 @@ int64_t ffurl_size(URLContext *h) >>> >>> int ffurl_get_file_handle(URLContext *h) >>> { >>> + if (!h) >>> + return AVERROR(EINVAL); >>> if (!h->prot->url_get_file_handle) >> I think (!h && !h->prot && !h->prot->url_get_file_handle) more better >> than this > maybe you mean (!h || !h->port || !h->prot->url_get_file_handle) , is it? No, I means if (!h && !h->prot && !h->prot->url_get_file_handle) Do somthing else return error; >>> return -1; >>> return h->prot->url_get_file_handle(h); >>> @@ -632,6 +634,8 @@ int ffurl_get_file_handle(URLContext *h) >>> >>> int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) >>> { >>> + if (!h) >>> + return AVERROR(EINVAL); >>> if (!h->prot->url_get_multi_file_handle) { >>> if (!h->prot->url_get_file_handle) >>> return AVERROR(ENOSYS); >>> @@ -647,6 +651,8 @@ int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) >>> >>> int ffurl_get_short_seek(URLContext *h) >>> { >>> + if (!h) >>> + return AVERROR(EINVAL); >>> if (!h->prot->url_get_short_seek) >>> return AVERROR(ENOSYS); >>> return h->prot->url_get_short_seek(h); >>> @@ -654,6 +660,8 @@ int ffurl_get_short_seek(URLContext *h) >>> >>> int ffurl_shutdown(URLContext *h, int flags) >>> { >>> + if (!h) >>> + return AVERROR(EINVAL); >>> if (!h->prot->url_shutdown) >>> return AVERROR(EINVAL); >>> return h->prot->url_shutdown(h, flags);
> 在 2017年11月20日,15:43,Jun Zhao <mypopydev@gmail.com> 写道: > > > > On 2017/11/20 15:35, 刘歧 wrote: >> >>> 在 2017年11月20日,15:23,Jun Zhao <mypopydev@gmail.com> 写道: >>> >>> >>> >>> On 2017/11/20 14:45, Steven Liu wrote: >>>> fix ticket id: #6846 >>>> >>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org> >>>> --- >>>> libavformat/avio.c | 8 ++++++++ >>>> 1 file changed, 8 insertions(+) >>>> >>>> diff --git a/libavformat/avio.c b/libavformat/avio.c >>>> index 4dc468350c..e719326660 100644 >>>> --- a/libavformat/avio.c >>>> +++ b/libavformat/avio.c >>>> @@ -625,6 +625,8 @@ int64_t ffurl_size(URLContext *h) >>>> >>>> int ffurl_get_file_handle(URLContext *h) >>>> { >>>> + if (!h) >>>> + return AVERROR(EINVAL); >>>> if (!h->prot->url_get_file_handle) >>> I think (!h && !h->prot && !h->prot->url_get_file_handle) more better >>> than this >> maybe you mean (!h || !h->port || !h->prot->url_get_file_handle) , is it? > No, I means > if (!h && !h->prot && !h->prot->url_get_file_handle) > Do somthing will segmentation failed if !h is true, that is when h = NULL, and then get h->prot or h->prot->url_get_file_handle will in EXC_BAD_ACCESS. So i this the better is (!h || !h->port || !h->prot->url_get_file_handle) return error. > else > return error; > >>>> return -1; >>>> return h->prot->url_get_file_handle(h); >>>> @@ -632,6 +634,8 @@ int ffurl_get_file_handle(URLContext *h) >>>> >>>> int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) >>>> { >>>> + if (!h) >>>> + return AVERROR(EINVAL); >>>> if (!h->prot->url_get_multi_file_handle) { >>>> if (!h->prot->url_get_file_handle) >>>> return AVERROR(ENOSYS); >>>> @@ -647,6 +651,8 @@ int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) >>>> >>>> int ffurl_get_short_seek(URLContext *h) >>>> { >>>> + if (!h) >>>> + return AVERROR(EINVAL); >>>> if (!h->prot->url_get_short_seek) >>>> return AVERROR(ENOSYS); >>>> return h->prot->url_get_short_seek(h); >>>> @@ -654,6 +660,8 @@ int ffurl_get_short_seek(URLContext *h) >>>> >>>> int ffurl_shutdown(URLContext *h, int flags) >>>> { >>>> + if (!h) >>>> + return AVERROR(EINVAL); >>>> if (!h->prot->url_shutdown) >>>> return AVERROR(EINVAL); >>>> return h->prot->url_shutdown(h, flags); > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
On 2017/11/20 15:43, Jun Zhao wrote: > > On 2017/11/20 15:35, 刘歧 wrote: >>> 在 2017年11月20日,15:23,Jun Zhao <mypopydev@gmail.com> 写道: >>> >>> >>> >>> On 2017/11/20 14:45, Steven Liu wrote: >>>> fix ticket id: #6846 >>>> >>>> Signed-off-by: Steven Liu <lq@chinaffmpeg.org> >>>> --- >>>> libavformat/avio.c | 8 ++++++++ >>>> 1 file changed, 8 insertions(+) >>>> >>>> diff --git a/libavformat/avio.c b/libavformat/avio.c >>>> index 4dc468350c..e719326660 100644 >>>> --- a/libavformat/avio.c >>>> +++ b/libavformat/avio.c >>>> @@ -625,6 +625,8 @@ int64_t ffurl_size(URLContext *h) >>>> >>>> int ffurl_get_file_handle(URLContext *h) >>>> { >>>> + if (!h) >>>> + return AVERROR(EINVAL); >>>> if (!h->prot->url_get_file_handle) >>> I think (!h && !h->prot && !h->prot->url_get_file_handle) more better >>> than this >> maybe you mean (!h || !h->port || !h->prot->url_get_file_handle) , is it? > No, I means > if (!h && !h->prot && !h->prot->url_get_file_handle) > Do somthing > else > return error; Made a mistake in the comments, shame :( you are right. >>>> return -1; >>>> return h->prot->url_get_file_handle(h); >>>> @@ -632,6 +634,8 @@ int ffurl_get_file_handle(URLContext *h) >>>> >>>> int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) >>>> { >>>> + if (!h) >>>> + return AVERROR(EINVAL); >>>> if (!h->prot->url_get_multi_file_handle) { >>>> if (!h->prot->url_get_file_handle) >>>> return AVERROR(ENOSYS); >>>> @@ -647,6 +651,8 @@ int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) >>>> >>>> int ffurl_get_short_seek(URLContext *h) >>>> { >>>> + if (!h) >>>> + return AVERROR(EINVAL); >>>> if (!h->prot->url_get_short_seek) >>>> return AVERROR(ENOSYS); >>>> return h->prot->url_get_short_seek(h); >>>> @@ -654,6 +660,8 @@ int ffurl_get_short_seek(URLContext *h) >>>> >>>> int ffurl_shutdown(URLContext *h, int flags) >>>> { >>>> + if (!h) >>>> + return AVERROR(EINVAL); >>>> if (!h->prot->url_shutdown) >>>> return AVERROR(EINVAL); >>>> return h->prot->url_shutdown(h, flags);
diff --git a/libavformat/avio.c b/libavformat/avio.c index 4dc468350c..e719326660 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -625,6 +625,8 @@ int64_t ffurl_size(URLContext *h) int ffurl_get_file_handle(URLContext *h) { + if (!h) + return AVERROR(EINVAL); if (!h->prot->url_get_file_handle) return -1; return h->prot->url_get_file_handle(h); @@ -632,6 +634,8 @@ int ffurl_get_file_handle(URLContext *h) int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) { + if (!h) + return AVERROR(EINVAL); if (!h->prot->url_get_multi_file_handle) { if (!h->prot->url_get_file_handle) return AVERROR(ENOSYS); @@ -647,6 +651,8 @@ int ffurl_get_multi_file_handle(URLContext *h, int **handles, int *numhandles) int ffurl_get_short_seek(URLContext *h) { + if (!h) + return AVERROR(EINVAL); if (!h->prot->url_get_short_seek) return AVERROR(ENOSYS); return h->prot->url_get_short_seek(h); @@ -654,6 +660,8 @@ int ffurl_get_short_seek(URLContext *h) int ffurl_shutdown(URLContext *h, int flags) { + if (!h) + return AVERROR(EINVAL); if (!h->prot->url_shutdown) return AVERROR(EINVAL); return h->prot->url_shutdown(h, flags);
fix ticket id: #6846 Signed-off-by: Steven Liu <lq@chinaffmpeg.org> --- libavformat/avio.c | 8 ++++++++ 1 file changed, 8 insertions(+)