Hao Wu 1e5ce6e10a hw/misc: Fix arith overflow in NPCM7XX PWM module
Fix potential overflow problem when calculating pwm_duty.
1. Ensure p->cmr and p->cnr to be from [0,65535], according to the
   hardware specification.
2. Changed duty to uint32_t. However, since MAX_DUTY * (p->cmr+1)
   can excceed UINT32_MAX, we convert them to uint64_t in computation
   and converted them back to uint32_t.
   (duty is guaranteed to be <= MAX_DUTY so it won't overflow.)

Fixes: CID 1442342
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Doug Evans <dje@google.com>
Signed-off-by: Hao Wu <wuhaotsh@google.com>
Message-id: 20210127011142.2122790-1-wuhaotsh@google.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2021-01-29 10:47:28 +00:00
..
2021-01-22 18:26:40 +01:00
2021-01-12 21:19:02 +00:00
2020-12-10 12:15:18 -05:00
2020-12-10 12:15:18 -05:00
2021-01-08 15:13:38 +00:00
2020-12-10 12:15:07 -05:00
2021-01-17 06:42:54 -05:00
2021-01-08 15:13:38 +00:00
2020-12-10 12:15:18 -05:00
2020-12-10 12:15:08 -05:00
2020-08-21 06:30:25 -04:00
2020-08-27 14:04:55 -04:00
2021-01-01 22:57:15 +00:00
2020-12-10 12:15:06 -05:00
2020-12-10 12:15:08 -05:00
2020-12-10 12:15:18 -05:00
2020-08-21 06:30:33 -04:00
2020-08-21 06:30:33 -04:00
2020-08-21 06:30:33 -04:00