[PATCH net-next v3 1/2] keys, dns: drop unused upayload->data NUL terminator

Thorsten Blum <[email protected]> Mon, 27 Apr 2026 13:44:23 +0200
Newsgroups org.kernel.vger.keyrings,org.kernel.vger.linux-hardening,org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Message-ID <[email protected]>
->data includes an extra NUL terminator despite never being used as a C
string and only accessing ->datalen bytes. Remove the redundant NUL
terminator and allocate one byte less in dns_resolver_preparse().

Signed-off-by: Thorsten Blum <[email protected]>
---
Changes in v3:
- Update commit message
- v2: https://lore.kernel.org/lkml/[email protected]/

Changes in v2:
- No changes in patch 1/2
- v1: https://lore.kernel.org/lkml/[email protected]/
---
 net/dns_resolver/dns_key.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/dns_resolver/dns_key.c b/net/dns_resolver/dns_key.c
index c3c8c3240ef9..451247864a63 100644
--- a/net/dns_resolver/dns_key.c
+++ b/net/dns_resolver/dns_key.c
@@ -203,7 +203,7 @@ dns_resolver_preparse(struct key_preparsed_payload *prep)
 	kdebug("store result");
 	prep->quotalen = result_len;
 
-	upayload = kmalloc_flex(*upayload, data, result_len + 1);
+	upayload = kmalloc_flex(*upayload, data, result_len);
 	if (!upayload) {
 		kleave(" = -ENOMEM");
 		return -ENOMEM;
@@ -211,7 +211,6 @@ dns_resolver_preparse(struct key_preparsed_payload *prep)
 
 	upayload->datalen = result_len;
 	memcpy(upayload->data, data, result_len);
-	upayload->data[result_len] = '\0';
 
 	prep->payload.data[dns_key_data] = upayload;
 	kleave(" = 0");