hwmon: Error handling in w83793.c, w83791d.c, w83792d.c

From: Nadezda Lutovinova
Date: Wed Aug 11 2021 - 12:15:57 EST


In w83793_detect_subclients(): if driver read tmp value sufficient for
(tmp & 0x08) && (!(tmp & 0x80)) && ((tmp & 0x7) == ((tmp >> 4) & 0x7))
from device then Null pointer dereference occurs.
(It is possible if tmp = 0b0xyz1xyz, where same chars mean same numbers).

It can be fixed just by adding a checking for null pointer, patch for
this is in the next letter. But a question arised:
The array w83793_data->lm75 is used once in this function after switching
to devm_i2c_new_dummy_device() instead of i2c_new_dummy(). And this
function is called once (from w83793_probe()). Maybe this array should be
deleted from struct w83793_data?

The same situation in w83791d.c and in w83792d.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Nadezda Lutovinova <lutovinova@xxxxxxxxx>