From: Iago López Galeiras Date: Fri, 16 Feb 2018 13:32:44 +0000 (+0100) Subject: job: truncate unit description X-Git-Tag: v238~91 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=574432f889ce3de126bbc6736bcbd22ee170ff82;p=thirdparty%2Fsystemd.git job: truncate unit description The comment above says we're truncating the string but that's not true, an assert will fail in xsprintf if the description is longer than LINE_MAX. Let's use snprintf instead of xsprintf to make sure it's truncated. We'll cast its result to void to tell static checkers we're fine with truncation. --- diff --git a/src/core/job.c b/src/core/job.c index a653694d323..249016f8b82 100644 --- a/src/core/job.c +++ b/src/core/job.c @@ -776,9 +776,12 @@ static void job_log_status_message(Unit *u, JobType t, JobResult result) { if (!format) return; - /* The description might be longer than the buffer, but that's OK, we'll just truncate it here */ + /* The description might be longer than the buffer, but that's OK, + * we'll just truncate it here. Note that we use snprintf() rather than + * xsprintf() on purpose here: we are fine with truncation and don't + * consider that an error. */ DISABLE_WARNING_FORMAT_NONLITERAL; - xsprintf(buf, format, unit_description(u)); + (void) snprintf(buf, sizeof(buf), format, unit_description(u)); REENABLE_WARNING; switch (t) {