提交 045344c3 编写于 作者: H Hans Verkuil 提交者: Mauro Carvalho Chehab

[media] cec: zero unused msg part after msg->len

Ensure that the unused part of the msg array is zeroed. This is
required by CEC 2.0 when receiving shorter messages than expected.
In that case the remaining bytes are assumed to be 0.

There are no such CEC messages yet, but it is required to be future proof.

And since we're doing it for received messages, do it for transmitted
messages as well. It's unambiguous this way.
Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
上级 4eef404f
...@@ -601,6 +601,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg, ...@@ -601,6 +601,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
dprintk(1, "cec_transmit_msg: can't reply for poll msg\n"); dprintk(1, "cec_transmit_msg: can't reply for poll msg\n");
return -EINVAL; return -EINVAL;
} }
memset(msg->msg + msg->len, 0, sizeof(msg->msg) - msg->len);
if (msg->len == 1) { if (msg->len == 1) {
if (cec_msg_initiator(msg) != 0xf || if (cec_msg_initiator(msg) != 0xf ||
cec_msg_destination(msg) == 0xf) { cec_msg_destination(msg) == 0xf) {
...@@ -771,6 +772,7 @@ void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg) ...@@ -771,6 +772,7 @@ void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg)
msg->tx_status = 0; msg->tx_status = 0;
msg->tx_ts = 0; msg->tx_ts = 0;
msg->flags = 0; msg->flags = 0;
memset(msg->msg + msg->len, 0, sizeof(msg->msg) - msg->len);
mutex_lock(&adap->lock); mutex_lock(&adap->lock);
dprintk(2, "cec_received_msg: %*ph\n", msg->len, msg->msg); dprintk(2, "cec_received_msg: %*ph\n", msg->len, msg->msg);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册