add some param check condition
authorzsq <zsq@rock-chips.com>
Fri, 20 Apr 2012 09:50:43 +0000 (09:50 +0000)
committerzsq <zsq@rock-chips.com>
Fri, 20 Apr 2012 09:50:43 +0000 (09:50 +0000)
drivers/video/rockchip/rga/rga_drv.c

index 97791cb977cfa3db599bc335be979daa15d8eba7..725ed796ae9f64aef3170cbfc96f25090fa9736b 100755 (executable)
@@ -323,6 +323,15 @@ static int rga_check_param(const struct rga_req *req)
        }\r
     }\r
 \r
+    if(!((req->render_mode == color_fill_mode) || (req->render_mode == line_point_drawing_mode)))\r
+    {\r
+       if (unlikely((req->src.vir_w <= 0) || (req->src.vir_w > 8191) || (req->src.vir_h <= 0) || (req->src.vir_h > 8191))) \r
+        {\r
+               ERR("invalid source resolution vir_w = %d, vir_h = %d\n", req->src.vir_w, req->src.vir_h);\r
+               return  -EINVAL;\r
+       }\r
+    }\r
+\r
        //check dst width and height\r
        if (unlikely((req->dst.act_w <= 0) || (req->dst.act_w > 2048) || (req->dst.act_h <= 0) || (req->dst.act_h > 2048))) \r
     {\r
@@ -330,6 +339,12 @@ static int rga_check_param(const struct rga_req *req)
                return  -EINVAL;\r
        }\r
 \r
+    if (unlikely((req->dst.vir_w <= 0) || (req->dst.vir_w > 2048) || (req->dst.vir_h <= 0) || (req->dst.vir_h > 2048))) \r
+    {\r
+               ERR("invalid destination resolution vir_w = %d, vir_h = %d\n", req->dst.vir_w, req->dst.vir_h);\r
+               return  -EINVAL;\r
+       }\r
+\r
        //check src_vir_w\r
        if(unlikely(req->src.vir_w < req->src.act_w)){\r
                ERR("invalid src_vir_w act_w = %d, vir_w = %d\n", req->src.act_w, req->src.vir_w);\r