[FFmpeg-devel] [PATCH] lavf/tls_gnutls: check for interrupt inside handshake loop

Jan Ekström jeebjp at gmail.com
Mon Apr 20 20:07:27 EEST 2020


On Thu, Sep 5, 2019 at 6:13 PM Michael Niedermayer
<michael at niedermayer.cc> wrote:
>
> On Fri, Aug 16, 2019 at 10:38:46AM +0200, Błażej Szczygieł wrote:
> > fixes #8080
> >
> > Signed-off-by: Błażej Szczygieł <spaz16 at wp.pl>
> > ---
> >  libavformat/tls_gnutls.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/libavformat/tls_gnutls.c b/libavformat/tls_gnutls.c
> > index f32bc2821b..f507b7d044 100644
> > --- a/libavformat/tls_gnutls.c
> > +++ b/libavformat/tls_gnutls.c
> > @@ -184,6 +184,10 @@ static int tls_open(URLContext *h, const char *uri, int flags, AVDictionary **op
> >      gnutls_priority_set_direct(p->session, "NORMAL", NULL);
> >      do {
> >          ret = gnutls_handshake(p->session);
> > +        if (ff_check_interrupt(&h->interrupt_callback)) {
> > +            ret = AVERROR_EXIT;
> > +            goto fail;
> > +        }
> >          if (gnutls_error_is_fatal(ret)) {
> >              ret = print_tls_error(h, ret);
> >              goto fail;
>
> probably ok
>
> Thanks
>

I've been meaning to look at this (and apply if it looks good), and
while the other TLS wrappers don't seem to have this (I guess their
handshake doesn't base on a loop?), it seems to almost match examples
found in f.ex. libavformat/network.c, libavformat/libzmq.c or
libavformat/libsrt.c.

The only point I notice is that usually the interrupt check is the
first thing done a loop, and unless people see any issues with it, I
will apply this patch with that change during today or so?

Best regards,
Jan


More information about the ffmpeg-devel mailing list