OSDN Git Service

msm: mdss: Fix for wrong length in copy_to_user
authorRashi Bindra <rbindra@codeaurora.org>
Mon, 19 Mar 2018 08:37:27 +0000 (14:07 +0530)
committerRashi Bindra <rbindra@codeaurora.org>
Mon, 19 Mar 2018 11:36:12 +0000 (17:06 +0530)
The caller could have a small buf passed (less then < blen).
Since, the length of count and blen is not checked, it can
write beyond the end of buf.

Change-Id: I9138cd742b6166937f3cc1cbf1af36f280c94bdb
Signed-off-by: Rashi Bindra <rbindra@codeaurora.org>
drivers/video/fbdev/msm/mdss_dsi.c

index 7b61535..0d41f41 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 and
@@ -760,7 +760,7 @@ static ssize_t mdss_dsi_cmd_state_read(struct file *file, char __user *buf,
        if (blen < 0)
                return 0;
 
-       if (copy_to_user(buf, buffer, blen))
+       if (copy_to_user(buf, buffer, min(count, (size_t)blen+1)))
                return -EFAULT;
 
        *ppos += blen;