I suspect there is a single bug here, but the behaviour differs. This
and another IPv6 related new bug held me up for several weeks, so I've
spent a lot of time looking at this.
I initially also thought it was related to treatment of comments .
However after quite a lot of testing and code inspection, it appears the
root cause is
sysctl(8) uses write(2)
systemd variant uses some form of stream IO (e.f prinntf) **
** so when a write(2) of a 10 byte buffer returns "1" (byte sent) ,
systemd keeps calling , until all 10 bytes are consumed. sysctl(8) just
stops at 1 byte
*** that said I've seen write(2) also send many bytes ... so , a bit
more complicated.
The interaction is then how the kernel level code accepts the IO for
this particular /proc variable , it accepts just 1 byte (and seems to
only differentiate "1" or not "1" ..so "6" acts like "0")
for other /proc settings the kernel side obviously behaves differently ,
since for example:
cat /proc/sys/kernel/version
#111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 23:16:02 UTC 2026
Lots of bytes, including a '#' :-)
(BTW, from a different system, just a for instance)
The line in sysctl.c is:
} else {
if (0 < fprintf(fp, "%s\n", value))
rc = EXIT_SUCCESS;
Which looks like regular printf() but that "fp" comes, not from
fopen(3) but from:
if ((fp = fprocopen(path, "w")) == NULL) {
...
Then, via a long tortuous route , ends up at close() doing: (this is
from memory now, it's a while since I traced it)
if (cookie->final) {
len = write(cookie->fd, cookie->buf, cookie->offset);
There is a whole bunch of special cases "delimiter characters" etc and
a liberal scattering of gotos :-)
On 09/05/2026 14:35, Debian Bug Tracking System wrote:
Thank you for the additional information you have supplied regarding
this Bug report.
This is an automatically generated reply to let you know your message
has been received.
Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.
Your message has been sent to the package maintainer(s):
[email protected]
If you wish to submit further information on this problem, please
send it to [email protected].
Please do not send mail to [email protected] unless you wish
to report a problem with the Bug-tracking system.