From: Xiubo Li Date: Fri, 11 Mar 2022 04:15:05 +0000 (+0800) Subject: ceph: fix base64 encoded name's length check in ceph_fname_to_usr() X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ff2f93e5b17e4e096d9cc2a68901e264c72b47d4;p=ceph-client.git ceph: fix base64 encoded name's length check in ceph_fname_to_usr() The fname->name is based64_encoded names and the max long shouldn't exceed the NAME_MAX. The FSCRYPT_BASE64URL_CHARS(NAME_MAX) will be 255 * 4 / 3. Signed-off-by: Xiubo Li Signed-off-by: Jeff Layton --- diff --git a/fs/ceph/crypto.c b/fs/ceph/crypto.c index 5691222bea09..2222f4968f74 100644 --- a/fs/ceph/crypto.c +++ b/fs/ceph/crypto.c @@ -264,7 +264,7 @@ int ceph_fname_to_usr(const struct ceph_fname *fname, struct fscrypt_str *tname, } /* Sanity check that the resulting name will fit in the buffer */ - if (fname->name_len > FSCRYPT_BASE64URL_CHARS(NAME_MAX)) + if (fname->name_len > NAME_MAX || fname->ctext_len > NAME_MAX) return -EIO; ret = __fscrypt_prepare_readdir(fname->dir);