https://github.com/systemd/systemd/pull/38825#issue-3386123778
https://git.musl-libc.org/cgit/musl/commit/?id=fde29c04adbab9d5b081bf6717b5458188647f1c

From fde29c04adbab9d5b081bf6717b5458188647f1c Mon Sep 17 00:00:00 2001
From: Casey Connolly <kcxt@postmarketos.org>
Date: Wed, 23 Apr 2025 15:06:48 +0200
Subject: stdio: skip empty iovec when buffering is disabled

When buffering on a FILE is disabled we still send both iovecs, even
though the first one is always empty. Clean things up by skipping the
empty iovec instead.
---
 src/stdio/__stdio_write.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/stdio/__stdio_write.c b/src/stdio/__stdio_write.c
index d2d89475..5356553d 100644
--- a/src/stdio/__stdio_write.c
+++ b/src/stdio/__stdio_write.c
@@ -11,6 +11,11 @@ size_t __stdio_write(FILE *f, const unsigned char *buf, size_t len)
 	size_t rem = iov[0].iov_len + iov[1].iov_len;
 	int iovcnt = 2;
 	ssize_t cnt;
+
+	if (!iov->iov_len) {
+		iov++;
+		iovcnt--;
+	}
 	for (;;) {
 		cnt = syscall(SYS_writev, f->fd, iov, iovcnt);
 		if (cnt == rem) {
-- 
cgit v1.2.1
