tail_size is determined by several variables that come from the user
so we should verify that it's not too large.

Signed-off-by: Dan Carpenter <[email protected]>

diff --git a/drivers/staging/sep/sep_driver.c b/drivers/staging/sep/sep_driver.c
index 8ac3fae..e624e28 100644
--- a/drivers/staging/sep/sep_driver.c
+++ b/drivers/staging/sep/sep_driver.c
@@ -2120,6 +2120,8 @@ static int 
sep_prepare_input_output_dma_table_in_dcb(struct sep_device *sep,
                        }
                }
                if (tail_size) {
+                       if (tail_size > sizeof(dcb_table_ptr->tail_data))
+                               return -EINVAL;
                        if (is_kva == true) {
                                memcpy(dcb_table_ptr->tail_data,
                                        (void *)(app_in_address + data_in_size -
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to