mirror of
https://github.com/torvalds/linux.git
synced 2026-06-12 16:57:59 +02:00
video: rockchip: mpp: overflow issue when copy_from_user
when cnt is more than codec_info size, then it may be overflow risk. Change-Id: I7352118f425ccf263df0083c21ef0433f2322a43 Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
This commit is contained in:
parent
9e2373210d
commit
e26a5d3bf2
|
|
@ -659,6 +659,7 @@ static int rkvenc_control(struct mpp_session *session, struct mpp_request *req)
|
|||
priv = session->priv;
|
||||
|
||||
cnt = req->size / sizeof(elem);
|
||||
cnt = (cnt > ENC_INFO_BUTT) ? ENC_INFO_BUTT : cnt;
|
||||
mpp_debug(DEBUG_IOCTL, "codec info count %d\n", cnt);
|
||||
for (i = 0; i < cnt; i++) {
|
||||
if (copy_from_user(&elem, req->data + i * sizeof(elem), sizeof(elem))) {
|
||||
|
|
|
|||
|
|
@ -410,6 +410,7 @@ static int vepu_control(struct mpp_session *session, struct mpp_request *req)
|
|||
priv = session->priv;
|
||||
|
||||
cnt = req->size / sizeof(elem);
|
||||
cnt = (cnt > ENC_INFO_BUTT) ? ENC_INFO_BUTT : cnt;
|
||||
mpp_debug(DEBUG_IOCTL, "codec info count %d\n", cnt);
|
||||
down_write(&priv->rw_sem);
|
||||
for (i = 0; i < cnt; i++) {
|
||||
|
|
|
|||
|
|
@ -434,6 +434,7 @@ static int vepu_control(struct mpp_session *session, struct mpp_request *req)
|
|||
priv = session->priv;
|
||||
|
||||
cnt = req->size / sizeof(elem);
|
||||
cnt = (cnt > ENC_INFO_BUTT) ? ENC_INFO_BUTT : cnt;
|
||||
mpp_debug(DEBUG_IOCTL, "codec info count %d\n", cnt);
|
||||
for (i = 0; i < cnt; i++) {
|
||||
if (copy_from_user(&elem, req->data + i * sizeof(elem), sizeof(elem))) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user