mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
security: fix security issues about memory and registers
PD#138714: fix security issuses 1.Kernel Memory Corruption in efuse_read_usr() Kernel Memory Corruption in efuse_read_usr() 2.Audio SoC DebugFS Entry Allows Kernel Memory Corruption 3.Kernel Stack Buffer Overwrite in clk_test debugfs 4.Register DebugFS Entry Allows Kernel Memory Read Change-Id: I49373967732dde10e589f07aaab313340ba726e7 Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
This commit is contained in:
@@ -81,7 +81,7 @@ static ssize_t clk_test_write(struct file *file, const char __user *userbuf,
|
||||
|
||||
buf[count] = 0;
|
||||
|
||||
ret = sscanf(buf, "%s %s %lu", get_set, clk_name, &rate);
|
||||
ret = sscanf(buf, "%3s %31s %lu", get_set, clk_name, &rate);
|
||||
switch (ret) {
|
||||
case 1:
|
||||
pr_err("%s error usage!\n", __func__);
|
||||
|
||||
@@ -84,7 +84,7 @@ static ssize_t clk_test_write(struct file *file, const char __user *userbuf,
|
||||
|
||||
buf[count] = 0;
|
||||
|
||||
ret = sscanf(buf, "%s %s %lu", get_set, clk_name, &rate);
|
||||
ret = sscanf(buf, "%3s %31s %lu", get_set, clk_name, &rate);
|
||||
switch (ret) {
|
||||
case 1:
|
||||
pr_err("%s error usage!\n", __func__);
|
||||
|
||||
@@ -203,6 +203,8 @@ ssize_t efuse_read_usr(char *buf, size_t count, loff_t *ppos)
|
||||
ssize_t ret;
|
||||
loff_t pos;
|
||||
|
||||
if (count > EFUSE_BYTES)
|
||||
count = EFUSE_BYTES;
|
||||
memset(data, 0, count);
|
||||
|
||||
pdata = data;
|
||||
@@ -225,6 +227,8 @@ ssize_t efuse_write_usr(char *buf, size_t count, loff_t *ppos)
|
||||
pr_info("data length: 0 is error!\n");
|
||||
return -1;
|
||||
}
|
||||
if (count > EFUSE_BYTES)
|
||||
count = EFUSE_BYTES;
|
||||
|
||||
memset(data, 0, EFUSE_BYTES);
|
||||
|
||||
|
||||
@@ -189,9 +189,9 @@ static int __init aml_debug_init(void)
|
||||
}
|
||||
aml_dev.debugfs_reg_access = aml_reg_access;
|
||||
|
||||
debugfs_create_file("paddr", S_IFREG | 0444,
|
||||
debugfs_create_file("paddr", S_IFREG | 0440,
|
||||
debugfs_root, &aml_dev, &paddr_file_ops);
|
||||
debugfs_create_file("dump", S_IFREG | 0444,
|
||||
debugfs_create_file("dump", S_IFREG | 0440,
|
||||
debugfs_root, &aml_dev, &dump_file_ops);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -324,7 +324,7 @@ static void soc_init_codec_debugfs(struct snd_soc_component *component)
|
||||
{
|
||||
struct snd_soc_codec *codec = snd_soc_component_to_codec(component);
|
||||
|
||||
codec->debugfs_reg = debugfs_create_file("codec_reg", 0644,
|
||||
codec->debugfs_reg = debugfs_create_file("codec_reg", 0440,
|
||||
codec->component.debugfs_root,
|
||||
codec, &codec_reg_fops);
|
||||
if (!codec->debugfs_reg)
|
||||
|
||||
Reference in New Issue
Block a user