mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09: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:
@@ -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))) {
|
||||
|
||||
Reference in New Issue
Block a user