From 448eec1bdbd8bf6e0da74e4de4e96844fb292dd4 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Tue, 30 Dec 2025 13:46:20 +0100 Subject: [PATCH] crypto: avoid warnings about too-long initializer strings Mark `sigma` and `tau` as `__non_string`, to avoid warnings from clang 21 similar to: sys/crypto/chacha20/chacha.c:53:31: error: initializer-string for character array is too long, array size is 16 but initializer has size 17 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization] 53 | static const char sigma[16] = "expand 32-byte k"; | ^~~~~~~~~~~~~~~~~~ sys/crypto/chacha20/chacha.c:54:29: error: initializer-string for character array is too long, array size is 16 but initializer has size 17 (including the null terminating character); did you mean to use the 'nonstring' attribute? [-Werror,-Wunterminated-string-initialization] 54 | static const char tau[16] = "expand 16-byte k"; | ^~~~~~~~~~~~~~~~~~ MFC after: 3 days Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D54364 (cherry picked from commit 710ec409dffed3306ced253bba85dbdc7758510b) --- sys/crypto/chacha20/chacha.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/crypto/chacha20/chacha.c b/sys/crypto/chacha20/chacha.c index e22c348d14b..8ce69226635 100644 --- a/sys/crypto/chacha20/chacha.c +++ b/sys/crypto/chacha20/chacha.c @@ -51,8 +51,8 @@ typedef struct chacha_ctx chacha_ctx; a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \ c = PLUS(c,d); b = ROTATE(XOR(b,c), 7); -static const char sigma[16] = "expand 32-byte k"; -static const char tau[16] = "expand 16-byte k"; +static const char sigma[16] __nonstring = "expand 32-byte k"; +static const char tau[16] __nonstring = "expand 16-byte k"; LOCAL void chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits)