• Guenter Roeck's avatar
    hwmon: (lm90) Fix error return value from detect function · 7aeef154
    Guenter Roeck authored
    lm90_detect_nuvoton() is supposed to return NULL if it can not detect
    a chip, or a pointer to the chip name if it does. Under some circumstances
    it returns an error pointer instead. Some versions of gcc interpret an
    ERR_PTR as region of size 0 and generate an error message.
    
      In function ‘__fortify_strlen’,
          inlined from ‘strlcpy’ at ./include/linux/fortify-string.h:159:10,
          inlined from ‘lm90_detect’ at drivers/hwmon/lm90.c:2550:2:
      ./include/linux/fortify-string.h:50:33: error:
          ‘__builtin_strlen’ reading 1 or more bytes from a region of size 0
         50 | #define __underlying_strlen     __builtin_strlen
            |                                 ^
      ./include/linux/fortify-string.h:141:24: note:
          in expansion of macro ‘__underlying_strlen’
        141 |                 return __underlying_strlen(p);
            |                        ^~~~~~~~~~~~~~~~~~~
    
    Returning NULL instead of ERR_PTR() fixes the problem.
    
    Fixes: c7cebce9
    
     ("hwmon: (lm90) Rework detect function")
    Reported-by: default avatarIngo Molnar <mingo@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Kees Cook <keescook@chromium.org>
    Tested-by: default avatarIngo Molnar <mingo@kernel.org>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    7aeef154
lm90.c 85.6 KB