rtc: fix error checking in wdt_disable()
PATCH 1/1 rtc: fix error checking in wdt_disable()
From: Alexandr Sapozhnikov <[email protected]>
The i2c_transfer() function may return an error. Ignoring errors returned by functions is bad practice. Especially when these functions perform core functionality. What's the point of continuing to call the same function after an error is returned?
If the second function call succeeds, data corruption will occur.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
--- drivers/rtc/rtc-m41t80.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/rtc/rtc-m41t80.c +5 -5
@@ -677,11 +677,11 @@ static void wdt_disable(void) }; i2c_data[0 ] =0x09 ; -i2c_transfer (save_client->adapter, msgs0,2 ); - - i2c_data[0 ] =0x09 ; - i2c_data[1 ] =0x00 ; -i2c_transfer (save_client->adapter, msgs1,1 ); +if (!i2c_transfer (save_client->adapter, msgs0,2 )) { + i2c_data[0 ] =0x09 ; + i2c_data[1 ] =0x00 ; +i2c_transfer (save_client->adapter, msgs1,1 ); + } }/**
Signature · 1 line
2.43.0
Quoted 2 lines
The
i2c_transfer()function may return an error. Ignoring errors returned by functions is bad practice.
See also:
https://cwe.mitre.org/data/definitions/252.html
…
Quoted 1 line
If the second function call succeeds, data corruption will occur.
Should the function return values be checked for both passed messages?
* Would a corresponding imperative wording become helpful for an improved change description?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.17#n94
* How do you think about to add any tags (like “Fixes” and “Cc”) accordingly?
Regards,
Markus