Skip to content
  • ZhangXiaoxu's avatar
    rtc: Fix UBSAN overflow warning · 074b01a5
    ZhangXiaoxu authored
    
    
    Users may call 'ioctl' and pass a very big value on 'tm->tm_year'.
    It can be overflowed in 'int' after add 1900.
    In function 'rtc_month_days' and 'mktime64', also treated it as an
    'unsigned' parameter.
    
    UBSAN: Undefined behaviour in drivers/rtc/rtc-lib.c:103:59
    signed integer overflow:
    2147483647 + 1900 cannot be represented in type 'int'
    
    UBSAN: Undefined behaviour in drivers/rtc/rtc-lib.c:119:30
    signed integer overflow:
    2147483647 + 1900 cannot be represented in type 'int'
    
    So, covert it to 'unsigned' explicitly.
    
    Signed-off-by: default avatarZhangXiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
    074b01a5