git: 3897678132e7 - main - vfs_register: prevent kernel crash

From: Alexander Leidinger <netchild_at_FreeBSD.org>
Date: Wed, 23 Sep 2026 12:47:46 UTC
The branch main has been updated by netchild:

URL: https://cgit.FreeBSD.org/src/commit/?id=3897678132e71df70dbb18bf8e2f19124beee5d7

commit 3897678132e71df70dbb18bf8e2f19124beee5d7
Author:     Alexander Leidinger <netchild@FreeBSD.org>
AuthorDate: 2026-09-23 12:30:42 +0000
Commit:     Alexander Leidinger <netchild@FreeBSD.org>
CommitDate: 2026-09-23 12:47:42 +0000

    vfs_register: prevent kernel crash
    
    vfs_register hashes the filesystem name and uses it for sysctl oids.
    A filesystem name which hashes to 0 crashes in sysctl_register_oid().
    
    Map 0 to 1 to prevent the kernel crash.
    
    This can be tested with "udf2" as the filesystem name.
    
    MFC after:      1 month
    MFC to:         stable/15 stable/14
    Reviewed by:    kib
    Differential Revision: https://reviews.freebsd.org/D59839
---
 sys/kern/vfs_init.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sys/kern/vfs_init.c b/sys/kern/vfs_init.c
index ceda770cb714..b4817f172edd 100644
--- a/sys/kern/vfs_init.c
+++ b/sys/kern/vfs_init.c
@@ -427,6 +427,8 @@ vfs_register(struct vfsconf *vfc)
 		 */
 		hashval = fnv_32_str(vfc->vfc_name, FNV1_32_INIT);
 		hashval &= 0xff;
+		if (hashval == 0)
+			hashval = 1;
 		secondpass = 0;
 		do {
 			/* Look for and fix any collision. */