git: 5402a4d73fe7 - stable/14 - fsck_msdosfs: avoid warnings about too-long initializer strings

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Mon, 29 Dec 2025 12:23:29 UTC
The branch stable/14 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=5402a4d73fe7f26d9ae7d6a9a5937c87ad06b5a2

commit 5402a4d73fe7f26d9ae7d6a9a5937c87ad06b5a2
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2025-12-25 20:28:14 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2025-12-29 12:19:14 +0000

    fsck_msdosfs: avoid warnings about too-long initializer strings
    
    Mark `dot_name` and `dotdot_name` as as `__non_string`, to avoid
    warnings from clang 21 similar to:
    
        sbin/fsck_msdosfs/dir.c:466:39: error: initializer-string for character array is too long, array size is 11 but initializer has size 12 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
          466 | static const u_char dot_name[11]    = ".          ";
              |                                       ^~~~~~~~~~~~~
        sbin/fsck_msdosfs/dir.c:467:39: error: initializer-string for character array is too long, array size is 11 but initializer has size 12 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization]
          467 | static const u_char dotdot_name[11] = "..         ";
              |                                       ^~~~~~~~~~~~~
    
    MFC after:      3 days
    
    (cherry picked from commit 98c3d868fb5a7da7356c58e8c51423975bbd078b)
---
 sbin/fsck_msdosfs/dir.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sbin/fsck_msdosfs/dir.c b/sbin/fsck_msdosfs/dir.c
index 19516d882e2a..2d7e4bcdc38f 100644
--- a/sbin/fsck_msdosfs/dir.c
+++ b/sbin/fsck_msdosfs/dir.c
@@ -463,8 +463,8 @@ checksize(struct fat_descriptor *fat, u_char *p, struct dosDirEntry *dir)
 	return FSOK;
 }
 
-static const u_char dot_name[11]    = ".          ";
-static const u_char dotdot_name[11] = "..         ";
+static const u_char dot_name[11] __nonstring    = ".          ";
+static const u_char dotdot_name[11] __nonstring = "..         ";
 
 /*
  * Basic sanity check if the subdirectory have good '.' and '..' entries,