[Devel] [PATCH RHEL8 COMMIT] fuse: Fix fuse_parse_param() kio_name handling #PSBM-131962
Konstantin Khorenko
khorenko at virtuozzo.com
Thu Aug 5 19:09:12 MSK 2021
The commit is pushed to "branch-rh8-4.18.0-305.3.1.vz8.7.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh8-4.18.0-305.3.1.vz8.7.2
------>
commit 4c17c3856a6c4ad270604679aad8afdd3c7205c9
Author: Kirill Tkhai <ktkhai at virtuozzo.com>
Date: Thu Aug 5 19:09:11 2021 +0300
fuse: Fix fuse_parse_param() kio_name handling #PSBM-131962
https://jira.sw.ru/browse/PSBM-131962
Fixes: 462dea7b00b1 ("fuse: add kdirect io engine v0.1")
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
---
fs/fuse/fuse_i.h | 2 +-
fs/fuse/inode.c | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 57c673386ff9..014c44ec9e26 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -586,7 +586,7 @@ struct fuse_fs_context {
unsigned int max_read;
unsigned int blksize;
const char *subtype;
- char kio_name[FUSE_KIO_NAME];
+ char kio_name[FUSE_KIO_NAME + 1];
/* DAX device, may be NULL */
struct dax_device *dax_dev;
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 81308d08a8ad..ca6363720daf 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -779,11 +779,11 @@ static int fuse_parse_param(struct fs_context *fc, struct fs_parameter *param)
case OPT_KIO_NAME: {
if (!ve_is_super(get_exec_env()))
return -EPERM;
+ if (param->size > FUSE_KIO_NAME)
+ return -EINVAL;
- /* FIXME: if len(param->string) > FUSE_KIO_NAME,
- * there will be no string termination
- */
- strncpy(ctx->kio_name, param->string, FUSE_KIO_NAME);
+ strncpy(ctx->kio_name, param->string, param->size);
+ ctx->kio_name[FUSE_KIO_NAME] = '\0';
ctx->kdirect_io = 1;
kfree(param->string);
More information about the Devel
mailing list