From: zsq Date: Fri, 20 Apr 2012 09:50:43 +0000 (+0000) Subject: add some param check condition X-Git-Tag: firefly_0821_release~9361 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=12736aef5be80bb8a249ab845231a6a39da7523d;p=firefly-linux-kernel-4.4.55.git add some param check condition --- diff --git a/drivers/video/rockchip/rga/rga_drv.c b/drivers/video/rockchip/rga/rga_drv.c index 97791cb977cf..725ed796ae9f 100755 --- a/drivers/video/rockchip/rga/rga_drv.c +++ b/drivers/video/rockchip/rga/rga_drv.c @@ -323,6 +323,15 @@ static int rga_check_param(const struct rga_req *req) } } + if(!((req->render_mode == color_fill_mode) || (req->render_mode == line_point_drawing_mode))) + { + if (unlikely((req->src.vir_w <= 0) || (req->src.vir_w > 8191) || (req->src.vir_h <= 0) || (req->src.vir_h > 8191))) + { + ERR("invalid source resolution vir_w = %d, vir_h = %d\n", req->src.vir_w, req->src.vir_h); + return -EINVAL; + } + } + //check dst width and height if (unlikely((req->dst.act_w <= 0) || (req->dst.act_w > 2048) || (req->dst.act_h <= 0) || (req->dst.act_h > 2048))) { @@ -330,6 +339,12 @@ static int rga_check_param(const struct rga_req *req) return -EINVAL; } + if (unlikely((req->dst.vir_w <= 0) || (req->dst.vir_w > 2048) || (req->dst.vir_h <= 0) || (req->dst.vir_h > 2048))) + { + ERR("invalid destination resolution vir_w = %d, vir_h = %d\n", req->dst.vir_w, req->dst.vir_h); + return -EINVAL; + } + //check src_vir_w if(unlikely(req->src.vir_w < req->src.act_w)){ ERR("invalid src_vir_w act_w = %d, vir_w = %d\n", req->src.act_w, req->src.vir_w);