From fd4b1f532d2f57f452032f63c547413cbae03aca Mon Sep 17 00:00:00 2001 From: Ao Xu Date: Wed, 23 Oct 2019 19:24:27 +0800 Subject: [PATCH] drm: solve debug node write string issue [1/1] PD#SWPL-15143 Problem: userspace program use the write() syscall to write the node. when write the strlen() length content, it will fail. Solution: use the buf[size] to instead of buf[size-1] Verify: U200 Change-Id: I886d9a1cbf3da459476bca76c9a5708ecbc20afe Signed-off-by: Ao Xu --- drivers/amlogic/drm/meson_debugfs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/amlogic/drm/meson_debugfs.c b/drivers/amlogic/drm/meson_debugfs.c index dbab11f..ff9eea8 100644 --- a/drivers/amlogic/drm/meson_debugfs.c +++ b/drivers/amlogic/drm/meson_debugfs.c @@ -59,7 +59,9 @@ static ssize_t meson_dump_write(struct file *file, const char __user *ubuf, if (copy_from_user(buf, ubuf, len)) return -EFAULT; - buf[len - 1] = '\0'; + if (buf[len - 1] == '\n') + buf[len - 1] = '\0'; + buf[len] = '\0'; if (strncmp(buf, "0", 1) == 0) { amc->dump_enable = 0; @@ -193,7 +195,9 @@ static ssize_t meson_blank_write(struct file *file, const char __user *ubuf, if (copy_from_user(buf, ubuf, len)) return -EFAULT; - buf[len - 1] = '\0'; + if (buf[len - 1] == '\n') + buf[len - 1] = '\0'; + buf[len] = '\0'; if (strncmp(buf, "1", 1) == 0) { amc->blank_enable = 1; -- 2.7.4