avcodec/diracdec: fix undefined behavior with shifts
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit b8598f6ce6)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
			
			
This commit is contained in:
		@@ -1342,8 +1342,8 @@ static int mc_subpel(DiracContext *s, DiracBlock *block, const uint8_t *src[5],
 | 
			
		||||
        motion_y >>= s->chroma_y_shift;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    mx         = motion_x & ~(-1 << s->mv_precision);
 | 
			
		||||
    my         = motion_y & ~(-1 << s->mv_precision);
 | 
			
		||||
    mx         = motion_x & ~(-1U << s->mv_precision);
 | 
			
		||||
    my         = motion_y & ~(-1U << s->mv_precision);
 | 
			
		||||
    motion_x >>= s->mv_precision;
 | 
			
		||||
    motion_y >>= s->mv_precision;
 | 
			
		||||
    /* normalize subpel coordinates to epel */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user