summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHangyu Hua <hbh25y@gmail.com>2022-08-24 10:26:00 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-09-01 16:29:50 +0200
commitc3b69ba5114c860d730870c03ab4ee45276e5e35 (patch)
tree1b3ba0de530f21d85e58ea49d308ec5048948a76
parentvirt: move from strlcpy with unused retval to strscpy (diff)
downloadlinux-c3b69ba5114c860d730870c03ab4ee45276e5e35.tar.xz
linux-c3b69ba5114c860d730870c03ab4ee45276e5e35.zip
misc: ocxl: fix possible refcount leak in afu_ioctl()
eventfd_ctx_put need to be called to put the refcount that gotten by eventfd_ctx_fdget when ocxl_irq_set_handler fails. Fixes: 060146614643 ("ocxl: move event_fd handling to frontend") Acked-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Hangyu Hua <hbh25y@gmail.com> Link: https://lore.kernel.org/r/20220824082600.36159-1-hbh25y@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/misc/ocxl/file.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c
index 6777c419a8da..d46dba2df5a1 100644
--- a/drivers/misc/ocxl/file.c
+++ b/drivers/misc/ocxl/file.c
@@ -257,6 +257,8 @@ static long afu_ioctl(struct file *file, unsigned int cmd,
if (IS_ERR(ev_ctx))
return PTR_ERR(ev_ctx);
rc = ocxl_irq_set_handler(ctx, irq_id, irq_handler, irq_free, ev_ctx);
+ if (rc)
+ eventfd_ctx_put(ev_ctx);
break;
case OCXL_IOCTL_GET_METADATA: