[FFmpeg-devel] add the protection for http range get request starting from file size

Submitted by shenqichao on Oct. 26, 2018, 10:40 a.m.

Details

Message ID 20181026104053.44219-1-qichaoshen@163.com
State New
Headers show

Commit Message

shenqichao Oct. 26, 2018, 10:40 a.m.
Signed-off-by: shenqichao <qichaoshen@163.com>
---
 libavformat/http.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Niedermayer Oct. 26, 2018, 8:04 p.m.
On Fri, Oct 26, 2018 at 06:40:53PM +0800, shenqichao wrote:
> Signed-off-by: shenqichao <qichaoshen@163.com>
> ---
>  libavformat/http.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavformat/http.c b/libavformat/http.c
> index 3a35bc7eac..129f683d15 100644
> --- a/libavformat/http.c
> +++ b/libavformat/http.c
> @@ -1669,7 +1669,7 @@ static int64_t http_seek_internal(URLContext *h, int64_t off, int whence, int fo
>      int old_buf_size, ret;
>      AVDictionary *options = NULL;
>  
> -    if (whence == AVSEEK_SIZE)
> +    if (whence == AVSEEK_SIZE || (whence == SEEK_SET && off == s->filesize))
>          return s->filesize;
>      else if (!force_reconnect &&
>               ((whence == SEEK_CUR && off == 0) ||

missing ticket number in commit message

also this doesnt feel correct.
a seek request to the previous file end must not lock up the http code
also the file may at the time of the request have a different size than before


[...]

Patch hide | download patch | download mbox

diff --git a/libavformat/http.c b/libavformat/http.c
index 3a35bc7eac..129f683d15 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -1669,7 +1669,7 @@  static int64_t http_seek_internal(URLContext *h, int64_t off, int whence, int fo
     int old_buf_size, ret;
     AVDictionary *options = NULL;
 
-    if (whence == AVSEEK_SIZE)
+    if (whence == AVSEEK_SIZE || (whence == SEEK_SET && off == s->filesize))
         return s->filesize;
     else if (!force_reconnect &&
              ((whence == SEEK_CUR && off == 0) ||