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)
 | 
			
		||||
        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)
 | 
			
		||||
        off += s->off;
 | 
			
		||||
    else if (whence == SEEK_END)
 | 
			
		||||
        off += s->filesize;
 | 
			
		||||
    if (off < 0)
 | 
			
		||||
        return AVERROR(EINVAL);
 | 
			
		||||
    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 */
 | 
			
		||||
    av_dict_copy(&options, s->chained_options, 0);
 | 
			
		||||
    if (http_open_cnx(h, &options) < 0) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user