diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-06-22 17:22:24 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-06-22 17:22:24 -0400 |
commit | 9bd01500e4d8c3c3387076581c19b3987776d7af (patch) | |
tree | f538372373e54803ac177174455caf4066a7a88a /fs | |
parent | bd4da0462ea7bf26b2a5df5528ec20c550f7ec41 (diff) | |
download | linux-stable-9bd01500e4d8c3c3387076581c19b3987776d7af.tar.gz linux-stable-9bd01500e4d8c3c3387076581c19b3987776d7af.tar.bz2 linux-stable-9bd01500e4d8c3c3387076581c19b3987776d7af.zip |
bcachefs: Fix freeing of error pointers
This fixes incorrect/missign checking of strndup_user() returns.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/bcachefs/chardev.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/bcachefs/chardev.c b/fs/bcachefs/chardev.c index 9e54323f0f5f..6d82e1165adc 100644 --- a/fs/bcachefs/chardev.c +++ b/fs/bcachefs/chardev.c @@ -216,7 +216,8 @@ static long bch2_ioctl_fsck_offline(struct bch_ioctl_fsck_offline __user *user_a ret = PTR_ERR_OR_ZERO(optstr) ?: bch2_parse_mount_opts(NULL, &thr->opts, optstr); - kfree(optstr); + if (!IS_ERR(optstr)) + kfree(optstr); if (ret) goto err; @@ -319,7 +320,8 @@ static long bch2_ioctl_disk_add(struct bch_fs *c, struct bch_ioctl_disk arg) return ret; ret = bch2_dev_add(c, path); - kfree(path); + if (!IS_ERR(path)) + kfree(path); return ret; } @@ -850,7 +852,8 @@ static long bch2_ioctl_fsck_online(struct bch_fs *c, ret = PTR_ERR_OR_ZERO(optstr) ?: bch2_parse_mount_opts(c, &thr->opts, optstr); - kfree(optstr); + if (!IS_ERR(optstr)) + kfree(optstr); if (ret) goto err; |