Message ID | 1565927404-4755-1-git-send-email-wenwen@cs.uga.edu (mailing list archive) |
---|---|
State | Accepted |
Commit | 145a32fe57e3ce195f52611ebadd0df911a56615 |
Delegated to: | Kalle Valo |
Headers | show |
Series | airo: fix memory leaks | expand |
Wenwen Wang <wenwen@cs.uga.edu> wrote: > 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> Patch applied to wireless-drivers-next.git, thanks. 145a32fe57e3 airo: fix memory leaks
diff --git a/drivers/net/wireless/cisco/airo.c b/drivers/net/wireless/cisco/airo.c index 9342ffb..f43c065 100644 --- a/drivers/net/wireless/cisco/airo.c +++ b/drivers/net/wireless/cisco/airo.c @@ -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;
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> --- drivers/net/wireless/cisco/airo.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)