mirror of https://gitee.com/openkylin/linux.git
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: Wenwen Wang <wenwen@cs.uga.edu> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
7a2eb7367f
commit
145a32fe57
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue