git: 557ba0c2a513 - main - yes: Avoid static initialization

Dag-Erling Smørgrav <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.src,gmane.os.freebsd.current.scm
Message-ID <[email protected]>
The branch main has been updated by des:

URL: https://cgit.FreeBSD.org/src/commit/?id=557ba0c2a5138ce026c0ea9cb02f374f97378b7c

commit 557ba0c2a5138ce026c0ea9cb02f374f97378b7c
Author:     Dag-Erling Smørgrav <[email protected]>
AuthorDate: 2026-08-17 16:04:35 +0000
Commit:     Dag-Erling Smørgrav <[email protected]>
CommitDate: 2026-08-17 16:04:35 +0000

    yes: Avoid static initialization
    
    Our buffer is half a megabyte, but we are only initializing the first
    two bytes.  Switching from static to dynamic initialization moves it
    from .data to .bss, greatly reducing the size of the binary.
    
    Fixes:          cf74b63d61b4 ("yes: Completely overengineer")
    MFC after:      1 week
    Sponsored by:   Klara, Inc.
    Reviewed by:    kevans
    Differential Revision:  https://reviews.freebsd.org/D58890
---
 usr.bin/yes/yes.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/usr.bin/yes/yes.c b/usr.bin/yes/yes.c
index 86022c82f453..66bb01d4de47 100644
--- a/usr.bin/yes/yes.c
+++ b/usr.bin/yes/yes.c
@@ -55,9 +55,9 @@
 int
 main(int argc, char **argv)
 {
-	static char buf[MAXBUF] = EXP;
-	char *end = buf + sizeof(buf), *exp, *pos = buf + EXPLEN;
-	size_t buflen, explen = EXPLEN;
+	static char buf[MAXBUF];
+	char *end = buf + sizeof(buf), *exp, *pos;
+	size_t buflen, explen;
 	ssize_t wlen = 0;
 
 	if (caph_limit_stdio() < 0 || caph_enter() < 0)
@@ -83,6 +83,10 @@ main(int argc, char **argv)
 			pos = end - 2;
 		*pos++ = '\n';
 		explen = pos - buf;
+	} else {
+		memcpy(buf, EXP, EXPLEN);
+		pos = buf + EXPLEN;
+		explen = EXPLEN;
 	}
 
 	/*
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.