linux-5.3-rc4/drivers/staging/comedi/drivers/dt3000.c:373: (error) Signed integer overflow for expression 'divider*base'

David Binderman dcb314 at hotmail.com
Mon Aug 12 07:37:00 UTC 2019


Hello there,

Source code is

    prescale = 15;
    base = timer_base * (1 << prescale);
    divider = 65535;
    *nanosec = divider * base;

timer_base seems to be 500 or 100. 
nanosec is a pointer to int, so it can only hold about 2,000,000,000 nanoseconds, or about 2 seconds.

Suggest rework code to use longs. 

Regards

David Binderman


time-_Base seems to be 50 or 100.


More information about the devel mailing list