turn log_trace() into a macro to prevent evaluating the format string
authoreric <eric@openbsd.org>
Wed, 31 Mar 2021 19:09:19 +0000 (19:09 +0000)
committereric <eric@openbsd.org>
Wed, 31 Mar 2021 19:09:19 +0000 (19:09 +0000)
parameters when tracing is not enabled.

ok millert@

usr.sbin/smtpd/smtpd.h
usr.sbin/smtpd/util.c

index 4b5da97..d36e332 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: smtpd.h,v 1.663 2021/03/31 17:47:16 eric Exp $        */
+/*     $OpenBSD: smtpd.h,v 1.664 2021/03/31 19:09:19 eric Exp $        */
 
 /*
  * Copyright (c) 2008 Gilles Chehade <gilles@poolp.org>
@@ -1749,8 +1749,9 @@ int base64_encode_rfc3548(unsigned char const *, size_t,
                      char *, size_t);
 
 void log_trace_verbose(int);
-void log_trace(int, const char *, ...)
-    __attribute__((format (printf, 2, 3)));
+void log_trace0(const char *, ...)
+    __attribute__((format (printf, 1, 2)));
+#define log_trace(m, ...)  do { if (tracing & (m)) log_trace0(__VA_ARGS__); } while (0)
 
 /* waitq.c */
 int  waitq_wait(void *, void (*)(void *, void *, void *), void *);
index 91e9367..9b6664b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: util.c,v 1.152 2020/11/29 20:07:38 tb Exp $   */
+/*     $OpenBSD: util.c,v 1.153 2021/03/31 19:09:19 eric Exp $ */
 
 /*
  * Copyright (c) 2000,2001 Markus Friedl.  All rights reserved.
@@ -823,15 +823,13 @@ base64_encode_rfc3548(unsigned char const *src, size_t srclen,
 }
 
 void
-log_trace(int mask, const char *emsg, ...)
+log_trace0(const char *emsg, ...)
 {
        va_list  ap;
 
-       if (tracing & mask) {
-               va_start(ap, emsg);
-               vlog(LOG_DEBUG, emsg, ap);
-               va_end(ap);
-       }
+       va_start(ap, emsg);
+       vlog(LOG_DEBUG, emsg, ap);
+       va_end(ap);
 }
 
 void