mirror of https://git.ffmpeg.org/ffmpeg.git
lavf/http: return error on seeking to negative postion
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
This commit is contained in:
parent
f495fbe76a
commit
4ba6a534dc
|
@ -955,16 +955,19 @@ static int64_t http_seek(URLContext *h, int64_t off, int whence)
|
||||||
else if ((s->filesize == -1 && whence == SEEK_END) || h->is_streamed)
|
else if ((s->filesize == -1 && whence == SEEK_END) || h->is_streamed)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* we save the old context in case the seek fails */
|
|
||||||
old_buf_size = s->buf_end - s->buf_ptr;
|
|
||||||
memcpy(old_buf, s->buf_ptr, old_buf_size);
|
|
||||||
s->hd = NULL;
|
|
||||||
if (whence == SEEK_CUR)
|
if (whence == SEEK_CUR)
|
||||||
off += s->off;
|
off += s->off;
|
||||||
else if (whence == SEEK_END)
|
else if (whence == SEEK_END)
|
||||||
off += s->filesize;
|
off += s->filesize;
|
||||||
|
if (off < 0)
|
||||||
|
return AVERROR(EINVAL);
|
||||||
s->off = off;
|
s->off = off;
|
||||||
|
|
||||||
|
/* we save the old context in case the seek fails */
|
||||||
|
old_buf_size = s->buf_end - s->buf_ptr;
|
||||||
|
memcpy(old_buf, s->buf_ptr, old_buf_size);
|
||||||
|
s->hd = NULL;
|
||||||
|
|
||||||
/* if it fails, continue on old connection */
|
/* if it fails, continue on old connection */
|
||||||
av_dict_copy(&options, s->chained_options, 0);
|
av_dict_copy(&options, s->chained_options, 0);
|
||||||
if (http_open_cnx(h, &options) < 0) {
|
if (http_open_cnx(h, &options) < 0) {
|
||||||
|
|
Loading…
Reference in New Issue