From: Tobias Stoeckmann Date: Mon, 16 Feb 2026 20:53:02 +0000 (+0100) Subject: dmesg: Keep error messages in parent's stderr X-Git-Tag: v2.43-devel~80 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5cdfffbd61689ae51fdfa3c08e6e665bd29e736a;p=thirdparty%2Futil-linux.git dmesg: Keep error messages in parent's stderr If dmesg uses a pager, some of its error messages end up in the pager output. Use the pager only for data that is supposed to be paged and print error messages before the pager is started or after it is shut down again. Signed-off-by: Tobias Stoeckmann --- diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c index 64c3fd5c3..854786554 100644 --- a/sys-utils/dmesg.c +++ b/sys-utils/dmesg.c @@ -1928,11 +1928,14 @@ int main(int argc, char *argv[]) if (ctl.force_prefix && ctl.method != DMESG_METHOD_KMSG) errx(EXIT_FAILURE, _("only kmsg supports multi-line messages")); - if (ctl.pager) - pager_redirect(); n = prepare_buffer(&ctl, &buf); - if (n > 0) + if (n > 0) { + if (ctl.pager) + pager_open(); print_buffer(&ctl, buf, n); + if (ctl.pager) + pager_close(); + } release_buffer(&ctl, buf); if (n < 0) err(EXIT_FAILURE, _("read kernel buffer failed"));