]> granicus.if.org Git - procps-ng/commit
sysctl: do not report set key in case `close_stream` fails
authorPatrick Steinhardt <ps@pks.im>
Tue, 29 May 2018 11:29:03 +0000 (13:29 +0200)
committerCraig Small <csmall@enc.com.au>
Mon, 4 Mar 2019 10:55:24 +0000 (21:55 +1100)
commit866a27cdcdc4252cfb3472a641e6810161498d54
treed34fbf0b98c41a06192e6b09d6b7b7011b6df24d
parent09a3687547c1e1a66a0f1e0e32a03e9c7ab2de11
sysctl: do not report set key in case `close_stream` fails

As we're using buffered I/O when writing kernel parameters, write errors
may get delayed until we close the `FILE` stream. As we are currently
outputting the key that is to be set disregarding the return value of
`close_stream`, we may end up in a situation where we report error and
success:

    $ sysctl kernel.printk_ratelimit=100000000000000
    sysctl: setting key "kernel.printk_ratelimit": error code 22
    kernel.printk_ratelimit = 100000000000000

Fix the issue by only outputting the updated value in case
`close_stream` does not report an error.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
sysctl.c