diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index 1506ead006..0fc24fe06d 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -144,6 +144,11 @@ static ssize_t swrm_reg_show(char __user *ubuf, size_t count, i <= SWR_MSTR_MAX_REG_ADDR; i += 4) { reg_val = dbgswrm->read(dbgswrm->handle, i); len = snprintf(tmp_buf, 25, "0x%.3x: 0x%.2x\n", i, reg_val); + if (len < 0) { + pr_err("%s: fail to fill the buffer\n", __func__); + total = -EFAULT; + goto copy_err; + } if ((total + len) >= count - 1) break; if (copy_to_user((ubuf + total), tmp_buf, len)) {