Clean up some unnecessary buffer allocations for printing, when
vfprintf() and vsyslog() can be used directly.

Cc: QI Fuli <[email protected]>
Signed-off-by: Dan Williams <[email protected]>
---
 ndctl/monitor.c |   43 ++++++++-----------------------------------
 1 file changed, 8 insertions(+), 35 deletions(-)

diff --git a/ndctl/monitor.c b/ndctl/monitor.c
index 8a16c9664e0a..e38a570fe960 100644
--- a/ndctl/monitor.c
+++ b/ndctl/monitor.c
@@ -49,60 +49,33 @@ do { \
 static void log_syslog(struct ndctl_ctx *ctx, int priority, const char *file,
                int line, const char *fn, const char *format, va_list args)
 {
-       char *buf;
-
-       if (vasprintf(&buf, format, args) < 0) {
-               fail("vasprintf error\n");
-               return;
-       }
-       syslog(priority, "%s", buf);
-
-       free(buf);
-       return;
+       vsyslog(priority, format, args);
 }
 
 static void log_standard(struct ndctl_ctx *ctx, int priority, const char *file,
                int line, const char *fn, const char *format, va_list args)
 {
-       char *buf;
-
-       if (vasprintf(&buf, format, args) < 0) {
-               fail("vasprintf error\n");
-               return;
-       }
-
        if (priority == 6)
-               fprintf(stdout, "%s", buf);
+               vfprintf(stdout, format, args);
        else
-               fprintf(stderr, "%s", buf);
-
-       free(buf);
-       return;
+               vfprintf(stderr, format, args);
 }
 
 static void log_file(struct ndctl_ctx *ctx, int priority, const char *file,
                int line, const char *fn, const char *format, va_list args)
 {
        FILE *f = monitor.log_file;
-       char *buf;
-       struct timespec ts;
-       char timestamp[32];
-
-       if (vasprintf(&buf, format, args) < 0) {
-               fail("vasprintf error\n");
-               return;
-       }
 
        if (priority != LOG_NOTICE) {
+               struct timespec ts;
+
                clock_gettime(CLOCK_REALTIME, &ts);
-               sprintf(timestamp, "%10ld.%09ld", ts.tv_sec, ts.tv_nsec);
-               fprintf(f, "[%s] [%d] %s", timestamp, getpid(), buf);
+               fprintf(f, "[%10ld.%09ld] [%d] ", ts.tv_sec, ts.tv_nsec, 
getpid());
+               vfprintf(f, format, args);
        } else
-               fprintf(f, "%s", buf);
+               vfprintf(f, format, args);
 
        fflush(f);
-       free(buf);
-       return;
 }
 
 static struct json_object *dimm_event_to_json(struct monitor_dimm *mdimm)

_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to