hw/timer/exynos4210_mct: Avoid overflow in exynos4210_ltick_recalc_count
Add casts to avoid potentially overflowing the multiplications of 32 bit quantities in exynos4210_ltick_recalc_count(). Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
This commit is contained in:
		
							parent
							
								
									2a41c92854
								
							
						
					
					
						commit
						c3a699be3c
					
				| 
						 | 
				
			
			@ -818,14 +818,14 @@ static void exynos4210_ltick_recalc_count(struct tick_timer *s)
 | 
			
		|||
         */
 | 
			
		||||
 | 
			
		||||
        if (s->last_tcnto) {
 | 
			
		||||
            to_count = s->last_tcnto * s->last_icnto;
 | 
			
		||||
            to_count = (uint64_t)s->last_tcnto * s->last_icnto;
 | 
			
		||||
        } else {
 | 
			
		||||
            to_count = s->last_icnto;
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        /* distance is passed, recalculate with tcnto * icnto */
 | 
			
		||||
        if (s->icntb) {
 | 
			
		||||
            s->distance = s->tcntb * s->icntb;
 | 
			
		||||
            s->distance = (uint64_t)s->tcntb * s->icntb;
 | 
			
		||||
        } else {
 | 
			
		||||
            s->distance = s->tcntb;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue