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

Commit 0ce1fbdd authored by Waldemar Rymarkiewicz's avatar Waldemar Rymarkiewicz Committed by Samuel Ortiz
Browse files

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: default avatarWaldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent f75c2913
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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,
	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);
}