diff mbox series

nfsd: depend on CRYPTO_MD5 for legacy client tracking

Message ID d411d31bcde3e0221d54ee8bb5af80772a277cad.1575355896.git.ps@pks.im (mailing list archive)
State New, archived
Headers show
Series nfsd: depend on CRYPTO_MD5 for legacy client tracking | expand

Commit Message

Patrick Steinhardt Dec. 3, 2019, 6:52 a.m. UTC
The legacy client tracking infrastructure of nfsd makes use of MD5 to
derive a client's recovery directory name. As the nfsd module doesn't
declare any dependency on CRYPTO_MD5, though, it may fail to allocate
the hash if the kernel was compiled without it. As a result, generation
of client recovery directories will fail with the following error:

    NFSD: unable to generate recoverydir name

The dependency was removed as a seemingly redundant dependency back in
6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig
2008-02-11). But in fact, even then the MD5 module was pulled in only
when RPCSEC_GSS_KRB5 or RPCSEC_GSS_KRB5 was selected.

Fix the issue by adding back an explicit dependency on CRYPTO_MD5.

Fixes: 6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig)
Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 fs/nfsd/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Chuck Lever Dec. 3, 2019, 4:50 p.m. UTC | #1
Hi Patrick-

> On Dec 3, 2019, at 1:52 AM, Patrick Steinhardt <ps@pks.im> wrote:
> 
> The legacy client tracking infrastructure of nfsd makes use of MD5 to
> derive a client's recovery directory name. As the nfsd module doesn't
> declare any dependency on CRYPTO_MD5, though, it may fail to allocate
> the hash if the kernel was compiled without it. As a result, generation
> of client recovery directories will fail with the following error:
> 
>    NFSD: unable to generate recoverydir name
> 
> The dependency was removed as a seemingly redundant dependency back in
> 6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig
> 2008-02-11). But in fact, even then the MD5 module was pulled in only
> when RPCSEC_GSS_KRB5 or RPCSEC_GSS_KRB5 was selected.
> 
> Fix the issue by adding back an explicit dependency on CRYPTO_MD5.
> 
> Fixes: 6aaa67b5f3b9 (NFSD: Remove redundant "select" clauses in fs/Kconfig)

Just a quibble with your Fixes: tag.

At that time, selecting NFSv4 support did bring in CRYPTO, because
NFSv4 support always selected RPCSEC_GSS_KRB5.

It was a later commit that removed RPCSEC_GSS_KRB5:

df486a25900f ("NFS: Fix the selection of security flavours in Kconfig")


> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
> fs/nfsd/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
> 
> diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
> index c4b1a89b8845..f2f81561ebb6 100644
> --- a/fs/nfsd/Kconfig
> +++ b/fs/nfsd/Kconfig
> @@ -73,6 +73,7 @@ config NFSD_V4
> 	select NFSD_V3
> 	select FS_POSIX_ACL
> 	select SUNRPC_GSS
> +	select CRYPTO_MD5
> 	select CRYPTO_SHA256
> 	select GRACE_PERIOD
> 	help
> -- 
> 2.24.0
> 

--
Chuck Lever
diff mbox series

Patch

diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig
index c4b1a89b8845..f2f81561ebb6 100644
--- a/fs/nfsd/Kconfig
+++ b/fs/nfsd/Kconfig
@@ -73,6 +73,7 @@  config NFSD_V4
 	select NFSD_V3
 	select FS_POSIX_ACL
 	select SUNRPC_GSS
+	select CRYPTO_MD5
 	select CRYPTO_SHA256
 	select GRACE_PERIOD
 	help