mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 01:04:19 +08:00
NFC: pn533: Fix memleak while scheduling next cmd
In case of error from __pn533_send_frame_async() while sending next cmd from the queue (cmd_wq), cmd->req, cmd->resp and cmd->arg pointers won't be freed. Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
f75c291361
commit
0ce1fbdd60
@ -886,6 +886,7 @@ static void pn533_wq_cmd(struct work_struct *work)
|
||||
{
|
||||
struct pn533 *dev = container_of(work, struct pn533, cmd_work);
|
||||
struct pn533_cmd *cmd;
|
||||
int rc;
|
||||
|
||||
mutex_lock(&dev->cmd_lock);
|
||||
|
||||
@ -901,8 +902,13 @@ static void pn533_wq_cmd(struct work_struct *work)
|
||||
|
||||
mutex_unlock(&dev->cmd_lock);
|
||||
|
||||
__pn533_send_frame_async(dev, cmd->req, cmd->resp, cmd->resp_len,
|
||||
pn533_send_async_complete, cmd->arg);
|
||||
rc = __pn533_send_frame_async(dev, cmd->req, cmd->resp, cmd->resp_len,
|
||||
pn533_send_async_complete, cmd->arg);
|
||||
if (rc < 0) {
|
||||
dev_kfree_skb(cmd->req);
|
||||
dev_kfree_skb(cmd->resp);
|
||||
kfree(cmd->arg);
|
||||
}
|
||||
|
||||
kfree(cmd);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user