tls: Use the right return value for breaking out due to the interrupt callback

Message ID 1458944112-6159-1-git-send-email-martin@martin.st
State Committed
Commit 69055927846bc66eedbb44b15814da593cb435e8
Headers show

Commit Message

Martin Storsjö March 25, 2016, 10:15 p.m.
The retry_transfer_wrapper function higher up in the call chain
ignores AVERROR(EINTR), which only means "interrupted by system call".

This makes sure that returning due to the interrupt callback
works as intended.

CC: libav-stable@libav.org
---
This fix is only relevant for the release branch 11 and earlier;
this issue is no longer present in the current git master.
---
 libavformat/tls.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Luca Barbato March 26, 2016, 12:41 a.m. | #1
On 25/03/16 23:15, Martin Storsjö wrote:
> The retry_transfer_wrapper function higher up in the call chain
> ignores AVERROR(EINTR), which only means "interrupted by system call".
> 
> This makes sure that returning due to the interrupt callback
> works as intended.
> 
> CC: libav-stable@libav.org
> ---
> This fix is only relevant for the release branch 11 and earlier;
> this issue is no longer present in the current git master.
> ---
>  libavformat/tls.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavformat/tls.c b/libavformat/tls.c
> index 7c78fda..3b00cb5 100644
> --- a/libavformat/tls.c
> +++ b/libavformat/tls.c
> @@ -132,7 +132,7 @@ static int do_tls_poll(URLContext *h, int ret)
>          if (n > 0)
>              break;
>          if (ff_check_interrupt(&h->interrupt_callback))
> -            return AVERROR(EINTR);
> +            return AVERROR_EXIT;
>      }
>      return 0;
>  }
> 

Sure.

Patch

diff --git a/libavformat/tls.c b/libavformat/tls.c
index 7c78fda..3b00cb5 100644
--- a/libavformat/tls.c
+++ b/libavformat/tls.c
@@ -132,7 +132,7 @@  static int do_tls_poll(URLContext *h, int ret)
         if (n > 0)
             break;
         if (ff_check_interrupt(&h->interrupt_callback))
-            return AVERROR(EINTR);
+            return AVERROR_EXIT;
     }
     return 0;
 }