Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0039b1e authored by Sai Krishna Juturi's avatar Sai Krishna Juturi
Browse files

usb : dwc3: Initialize kernel stack variables properly



If kernel stack variables are not initialized properly,
there  is a chance of kernel information disclosure.
So, initialize kernel stack variables with null characters.

CRs-fixed: 2042592
Change-Id: I213c0e5c7f67824c2cecace276ff2f8f81599d51
Signed-off-by: default avatarSai Krishna Juturi <jsaikrishna@codeaurora.org>
parent 36d0c813
Loading
Loading
Loading
Loading
+4 −6
Original line number Original line Diff line number Diff line
@@ -402,7 +402,7 @@ static ssize_t dwc3_mode_write(struct file *file,
	struct dwc3		*dwc = s->private;
	struct dwc3		*dwc = s->private;
	unsigned long		flags;
	unsigned long		flags;
	u32			mode = 0;
	u32			mode = 0;
	char			buf[32];
	char buf[32] = {0};


	if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
	if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
		return -EFAULT;
		return -EFAULT;
@@ -482,7 +482,7 @@ static ssize_t dwc3_testmode_write(struct file *file,
	struct dwc3		*dwc = s->private;
	struct dwc3		*dwc = s->private;
	unsigned long		flags;
	unsigned long		flags;
	u32			testmode = 0;
	u32			testmode = 0;
	char			buf[32];
	char			buf[32] = {0};


	if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
	if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
		return -EFAULT;
		return -EFAULT;
@@ -589,7 +589,7 @@ static ssize_t dwc3_link_state_write(struct file *file,
	struct dwc3		*dwc = s->private;
	struct dwc3		*dwc = s->private;
	unsigned long		flags;
	unsigned long		flags;
	enum dwc3_link_state	state = 0;
	enum dwc3_link_state	state = 0;
	char			buf[32];
	char			buf[32] = {0};


	if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
	if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
		return -EFAULT;
		return -EFAULT;
@@ -630,12 +630,10 @@ static ssize_t dwc3_store_ep_num(struct file *file, const char __user *ubuf,
{
{
	struct seq_file		*s = file->private_data;
	struct seq_file		*s = file->private_data;
	struct dwc3		*dwc = s->private;
	struct dwc3		*dwc = s->private;
	char			kbuf[10];
	char			kbuf[10] = {0};
	unsigned int		num, dir, temp;
	unsigned int		num, dir, temp;
	unsigned long		flags;
	unsigned long		flags;


	memset(kbuf, 0, 10);

	if (copy_from_user(kbuf, ubuf, count > 10 ? 10 : count))
	if (copy_from_user(kbuf, ubuf, count > 10 ? 10 : count))
		return -EFAULT;
		return -EFAULT;