From: David Marchand Date: Thu, 31 May 2018 08:03:27 +0000 (+0200) Subject: log: remove useless intermediate buffer X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=0c41aab8e287909c3b2a963c9ba74494f3f1485b;p=dpdk.git log: remove useless intermediate buffer Rather than copy the log message, we can use a precision in the format string given to syslog. Signed-off-by: David Marchand Reviewed-by: Olivier Matz --- diff --git a/lib/librte_eal/linuxapp/eal/eal_log.c b/lib/librte_eal/linuxapp/eal/eal_log.c index ff145884e5..9d02dddbed 100644 --- a/lib/librte_eal/linuxapp/eal/eal_log.c +++ b/lib/librte_eal/linuxapp/eal/eal_log.c @@ -25,25 +25,14 @@ static ssize_t console_log_write(__attribute__((unused)) void *c, const char *buf, size_t size) { - char copybuf[BUFSIZ + 1]; ssize_t ret; - uint32_t loglevel; /* write on stdout */ ret = fwrite(buf, 1, size, stdout); fflush(stdout); - /* truncate message if too big (should not happen) */ - if (size > BUFSIZ) - size = BUFSIZ; - /* Syslog error levels are from 0 to 7, so subtract 1 to convert */ - loglevel = rte_log_cur_msg_loglevel() - 1; - memcpy(copybuf, buf, size); - copybuf[size] = '\0'; - - /* write on syslog too */ - syslog(loglevel, "%s", copybuf); + syslog(rte_log_cur_msg_loglevel() - 1, "%.*s", (int)size, buf); return ret; }