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.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8fa339b1855723c946207c52531ee5103dbbfcae;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 7e1f66b350954..6fb2fd1a8af06 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);