projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
63513f8
)
block: Fix a memory leak in bdev_open_by_dev()
author
Christophe JAILLET
<christophe.jaillet@wanadoo.fr>
Sun, 24 Dec 2023 17:36:42 +0000
(18:36 +0100)
committer
Christian Brauner
<brauner@kernel.org>
Thu, 28 Dec 2023 10:48:17 +0000
(11:48 +0100)
If we early exit here, 'handle' needs to be freed, or some memory leaks.
Fixes: ed5cc702d311 ("block: Add config option to not allow writing to mounted devices")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link:
https://lore.kernel.org/r/8eaec334781e695810aaa383b55de00ca4ab1352.1703439383.git.christophe.jaillet@wanadoo.fr
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Christian Brauner <brauner@kernel.org>
block/bdev.c
patch
|
blob
|
history
diff --git
a/block/bdev.c
b/block/bdev.c
index fc8d28d77495f8ca8ee9ea221f2d6d52e47eb16f..de76320ef9dfe34fc33c5821c1c4ec78886ffda7 100644
(file)
--- a/
block/bdev.c
+++ b/
block/bdev.c
@@
-828,8
+828,10
@@
struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *holder,
goto free_handle;
/* Blocking writes requires exclusive opener */
- if (mode & BLK_OPEN_RESTRICT_WRITES && !holder)
- return ERR_PTR(-EINVAL);
+ if (mode & BLK_OPEN_RESTRICT_WRITES && !holder) {
+ ret = -EINVAL;
+ goto free_handle;
+ }
bdev = blkdev_get_no_open(dev);
if (!bdev) {