diff mbox

[FFmpeg-devel,v2] avformat/ftp: Solve a crash bug when network occur a exception

Message ID tencent_00DFB3205698AE7566266040@qq.com
State Accepted
Headers show

Commit Message

tiejun.peng April 4, 2017, 2:12 p.m. UTC
This fixes a proble where ffmpeg would cause crash to do a seek when the network disconnect.
The log like this:
01-01 10:53:03.441  6580  6580 F DEBUG   : backtrace:
01-01 10:53:03.441  6580  6580 F DEBUG   :     #00 pc 0002942e  /system/lib/libavformat.so (ffurl_write+9)

Signed-off-by: tiejun.peng <tiejun.peng@foxmail.com>

---
 libavformat/ftp.c | 3 +++
 1 file changed, 3 insertions(+)

-- 

Please have a look this patch, give some advice or merge it.
Thank you .

2.7.4

Comments

Michael Niedermayer April 5, 2017, 9:51 p.m. UTC | #1
On Tue, Apr 04, 2017 at 10:12:19PM +0800, F1 wrote:
> This fixes a proble where ffmpeg would cause crash to do a seek when the network disconnect.
> The log like this:
> 01-01 10:53:03.441  6580  6580 F DEBUG   : backtrace:
> 01-01 10:53:03.441  6580  6580 F DEBUG   :     #00 pc 0002942e  /system/lib/libavformat.so (ffurl_write+9)
> 
> Signed-off-by: tiejun.peng <tiejun.peng@foxmail.com>
> ---
>  libavformat/ftp.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/libavformat/ftp.c b/libavformat/ftp.c
> index 0663b47..9aa7a45 100644
> --- a/libavformat/ftp.c
> +++ b/libavformat/ftp.c
> @@ -206,6 +206,9 @@ static int ftp_send_command(FTPContext *s, const char *command,
>      if (response)
>          *response = NULL;
>  
> +    if (!s->conn_control)
> +        return AVERROR(EIO);
> +
>      if ((err = ffurl_write(s->conn_control, command, strlen(command))) < 0)
>          return err;
>      if (!err)
> -- 
> 
> Please have a look this patch, give some advice or merge it.
> Thank you .

applied

thx

[...]
diff mbox

Patch

diff --git a/libavformat/ftp.c b/libavformat/ftp.c
index 0663b47..9aa7a45 100644
--- a/libavformat/ftp.c
+++ b/libavformat/ftp.c
@@ -206,6 +206,9 @@  static int ftp_send_command(FTPContext *s, const char *command,
     if (response)
         *response = NULL;
 
+    if (!s->conn_control)
+        return AVERROR(EIO);
+
     if ((err = ffurl_write(s->conn_control, command, strlen(command))) < 0)
         return err;
     if (!err)