提交 145a32fe 编写于 作者: W Wenwen Wang 提交者: Kalle Valo

airo: fix memory leaks

In proc_BSSList_open(), 'file->private_data' is allocated through kzalloc()
and 'data->rbuffer' is allocated through kmalloc(). In the following
execution, if an error occurs, they are not deallocated, leading to memory
leaks. To fix this issue, free the allocated memory regions before
returning the error.
Signed-off-by: NWenwen Wang <wenwen@cs.uga.edu>
Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
上级 7a2eb736
......@@ -5441,11 +5441,18 @@ static int proc_BSSList_open( struct inode *inode, struct file *file ) {
Cmd cmd;
Resp rsp;
if (ai->flags & FLAG_RADIO_MASK) return -ENETDOWN;
if (ai->flags & FLAG_RADIO_MASK) {
kfree(data->rbuffer);
kfree(file->private_data);
return -ENETDOWN;
}
memset(&cmd, 0, sizeof(cmd));
cmd.cmd=CMD_LISTBSS;
if (down_interruptible(&ai->sem))
if (down_interruptible(&ai->sem)) {
kfree(data->rbuffer);
kfree(file->private_data);
return -ERESTARTSYS;
}
issuecommand(ai, &cmd, &rsp);
up(&ai->sem);
data->readlen = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册