Message ID | 20210914140235.65955-3-sven@svenpeter.dev (mailing list archive) |
---|---|
State | Accepted |
Commit | b7a0a63f3fed57d413bb857de164ea9c3984bc4e |
Headers | show |
Series | [v2,1/3] usb: typec: tipd: Don't read/write more bytes than required | expand |
On Tue, Sep 14, 2021 at 04:02:35PM +0200, Sven Peter wrote: > Calling tps6598x_block_read with a higher than allowed len can be > handled by just returning an error. There's no need to crash systems > with panic-on-warn enabled. > > Signed-off-by: Sven Peter <sven@svenpeter.dev> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > v1 -> v2: > - added this patch to also remove the WARN_ON in tps6598x_block_read > as suggested by greg k-h > > drivers/usb/typec/tipd/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c > index 8c79ba17a157..93e56291f0cf 100644 > --- a/drivers/usb/typec/tipd/core.c > +++ b/drivers/usb/typec/tipd/core.c > @@ -117,7 +117,7 @@ tps6598x_block_read(struct tps6598x *tps, u8 reg, void *val, size_t len) > u8 data[TPS_MAX_LEN + 1]; > int ret; > > - if (WARN_ON(len + 1 > sizeof(data))) > + if (len + 1 > sizeof(data)) > return -EINVAL; > > if (!tps->i2c_protocol) > -- > 2.25.1 thanks,
diff --git a/drivers/usb/typec/tipd/core.c b/drivers/usb/typec/tipd/core.c index 8c79ba17a157..93e56291f0cf 100644 --- a/drivers/usb/typec/tipd/core.c +++ b/drivers/usb/typec/tipd/core.c @@ -117,7 +117,7 @@ tps6598x_block_read(struct tps6598x *tps, u8 reg, void *val, size_t len) u8 data[TPS_MAX_LEN + 1]; int ret; - if (WARN_ON(len + 1 > sizeof(data))) + if (len + 1 > sizeof(data)) return -EINVAL; if (!tps->i2c_protocol)
Calling tps6598x_block_read with a higher than allowed len can be handled by just returning an error. There's no need to crash systems with panic-on-warn enabled. Signed-off-by: Sven Peter <sven@svenpeter.dev> --- v1 -> v2: - added this patch to also remove the WARN_ON in tps6598x_block_read as suggested by greg k-h drivers/usb/typec/tipd/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)