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>