mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-04 04:02:26 +00:00
autofs: validate protocol version
Move the protocol parameter validation into a seperate function. Signed-off-by: Ian Kent <raven@themaw.net> Reviewed-by: Bill O'Donnell <bodonnel@redhat.com> Message-Id: <20230922041215.13675-7-raven@themaw.net> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
9b2731666d
commit
1f50012d9c
@ -287,6 +287,28 @@ static struct autofs_sb_info *autofs_alloc_sbi(void)
|
||||
return sbi;
|
||||
}
|
||||
|
||||
static int autofs_validate_protocol(struct autofs_sb_info *sbi)
|
||||
{
|
||||
/* Test versions first */
|
||||
if (sbi->max_proto < AUTOFS_MIN_PROTO_VERSION ||
|
||||
sbi->min_proto > AUTOFS_MAX_PROTO_VERSION) {
|
||||
pr_err("kernel does not match daemon version "
|
||||
"daemon (%d, %d) kernel (%d, %d)\n",
|
||||
sbi->min_proto, sbi->max_proto,
|
||||
AUTOFS_MIN_PROTO_VERSION, AUTOFS_MAX_PROTO_VERSION);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Establish highest kernel protocol version */
|
||||
if (sbi->max_proto > AUTOFS_MAX_PROTO_VERSION)
|
||||
sbi->version = AUTOFS_MAX_PROTO_VERSION;
|
||||
else
|
||||
sbi->version = sbi->max_proto;
|
||||
sbi->sub_version = AUTOFS_PROTO_SUBVERSION;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int autofs_fill_super(struct super_block *s, void *data, int silent)
|
||||
{
|
||||
struct inode *root_inode;
|
||||
@ -335,22 +357,8 @@ int autofs_fill_super(struct super_block *s, void *data, int silent)
|
||||
goto fail_dput;
|
||||
}
|
||||
|
||||
/* Test versions first */
|
||||
if (sbi->max_proto < AUTOFS_MIN_PROTO_VERSION ||
|
||||
sbi->min_proto > AUTOFS_MAX_PROTO_VERSION) {
|
||||
pr_err("kernel does not match daemon version "
|
||||
"daemon (%d, %d) kernel (%d, %d)\n",
|
||||
sbi->min_proto, sbi->max_proto,
|
||||
AUTOFS_MIN_PROTO_VERSION, AUTOFS_MAX_PROTO_VERSION);
|
||||
if (autofs_validate_protocol(sbi))
|
||||
goto fail_dput;
|
||||
}
|
||||
|
||||
/* Establish highest kernel protocol version */
|
||||
if (sbi->max_proto > AUTOFS_MAX_PROTO_VERSION)
|
||||
sbi->version = AUTOFS_MAX_PROTO_VERSION;
|
||||
else
|
||||
sbi->version = sbi->max_proto;
|
||||
sbi->sub_version = AUTOFS_PROTO_SUBVERSION;
|
||||
|
||||
if (pgrp_set) {
|
||||
sbi->oz_pgrp = find_get_pid(pgrp);
|
||||
|
Loading…
Reference in New Issue
Block a user