Projects
Factory:RISC-V:Base
util-linux
_service:tar_scm:fix-size-use-for-stdin.patch
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:fix-size-use-for-stdin.patch of Package util-linux
From 58e4ee082bca100034791a4a74481f263bb30a25 Mon Sep 17 00:00:00 2001 From: Karel Zak <kzak@redhat.com> Date: Thu, 21 Oct 2021 18:47:40 +0200 Subject: [PATCH] logger: fix --size use for stdin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The stdin version counts log header into the message size, but for example when it reads message from argv[] it counts only message itself. $ logger --stderr --size 3 "abcd" <13>Oct 21 18:48:29 kzak: abc $ echo "abcd" | logger --stderr --size 3 logger: cannot allocate 18446744073709551597 bytes: Cannot allocate memory Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=2011602 Signed-off-by: Karel Zak <kzak@redhat.com> --- misc-utils/logger.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/misc-utils/logger.c b/misc-utils/logger.c index 25ff2b9308..50ae211056 100644 --- a/misc-utils/logger.c +++ b/misc-utils/logger.c @@ -976,9 +976,7 @@ static void logger_stdin(struct logger_ctl *ctl) */ int default_priority = ctl->pri; int last_pri = default_priority; - size_t max_usrmsg_size = ctl->max_message_size - strlen(ctl->hdr); - size_t allocated_usrmsg_size = max_usrmsg_size; - char *buf = xmalloc(allocated_usrmsg_size + 2 + 2); + char *buf = xmalloc(ctl->max_message_size + 2 + 2); int pri; int c; size_t i; @@ -1006,20 +1004,13 @@ static void logger_stdin(struct logger_ctl *ctl) if (ctl->pri != last_pri) { generate_syslog_header(ctl); - max_usrmsg_size = ctl->max_message_size - strlen(ctl->hdr); - - if (max_usrmsg_size > allocated_usrmsg_size) { - allocated_usrmsg_size = max_usrmsg_size; - buf = xrealloc(buf, allocated_usrmsg_size + 2 + 2); - } - last_pri = ctl->pri; } if (c != EOF && c != '\n') c = getchar(); } - while (c != EOF && c != '\n' && i < max_usrmsg_size) { + while (c != EOF && c != '\n' && i < ctl->max_message_size) { buf[i++] = c; c = getchar(); }
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2