mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-20 00:36:12 +07:00
media: cec: cec_transmit_msg_fh: do sanity checks first
The code that fills in the CEC_MSG_CDC_MESSAGE physical address is now done after the sanity checks. It also only does this if the message length is >= 4 (i.e. there is room for the physical address). Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
00ccd263ee
commit
63d171f85f
@ -740,11 +740,6 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
|
||||
else
|
||||
msg->flags = 0;
|
||||
|
||||
if (msg->len > 1 && msg->msg[1] == CEC_MSG_CDC_MESSAGE) {
|
||||
msg->msg[2] = adap->phys_addr >> 8;
|
||||
msg->msg[3] = adap->phys_addr & 0xff;
|
||||
}
|
||||
|
||||
/* Sanity checks */
|
||||
if (msg->len == 0 || msg->len > CEC_MAX_MSG_SIZE) {
|
||||
dprintk(1, "%s: invalid length %d\n", __func__, msg->len);
|
||||
@ -765,6 +760,12 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
|
||||
dprintk(1, "%s: can't reply to poll msg\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (msg->len >= 4 && msg->msg[1] == CEC_MSG_CDC_MESSAGE) {
|
||||
msg->msg[2] = adap->phys_addr >> 8;
|
||||
msg->msg[3] = adap->phys_addr & 0xff;
|
||||
}
|
||||
|
||||
if (msg->len == 1) {
|
||||
if (cec_msg_destination(msg) == 0xf) {
|
||||
dprintk(1, "%s: invalid poll message\n", __func__);
|
||||
|
Loading…
Reference in New Issue
Block a user