[PATCH] iio: chemical: sps30: Add Null pointer check

From: Karan Sanghavi
Date: Fri Oct 18 2024 - 14:55:05 EST


Add a Null pointer check before assigning and incrementing
the null pointer

Signed-off-by: Karan Sanghavi <karansanghvi98@xxxxxxxxx>
---
drivers/iio/chemical/sps30_i2c.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/iio/chemical/sps30_i2c.c b/drivers/iio/chemical/sps30_i2c.c
index 1b21b6bcd0e7..d2142e4c748c 100644
--- a/drivers/iio/chemical/sps30_i2c.c
+++ b/drivers/iio/chemical/sps30_i2c.c
@@ -105,16 +105,18 @@ static int sps30_i2c_command(struct sps30_state *state, u16 cmd, void *arg, size
return ret;

/* validate received data and strip off crc bytes */
- tmp = rsp;
- for (i = 0; i < rsp_size; i += 3) {
- crc = crc8(sps30_i2c_crc8_table, buf + i, 2, CRC8_INIT_VALUE);
- if (crc != buf[i + 2]) {
- dev_err(state->dev, "data integrity check failed\n");
- return -EIO;
+ if (rsp) {
+ tmp = rsp;
+ for (i = 0; i < rsp_size; i += 3) {
+ crc = crc8(sps30_i2c_crc8_table, buf + i, 2, CRC8_INIT_VALUE);
+ if (crc != buf[i + 2]) {
+ dev_err(state->dev, "data integrity check failed\n");
+ return -EIO;
+ }
+
+ *tmp++ = buf[i];
+ *tmp++ = buf[i + 1];
}
-
- *tmp++ = buf[i];
- *tmp++ = buf[i + 1];
}

return 0;

---
base-commit: f2493655d2d3d5c6958ed996b043c821c23ae8d3
change-id: 20241018-cid1593398badshift-9c512a3b92d9

Best regards,
--
Karan Sanghavi <karansanghvi98@xxxxxxxxx>