commit 3a9351b57e528b1d0bd2e72bcf78db7c91b2ff8f
Author: Nick Mathewson <nickm(a)torproject.org>
Date: Wed May 30 19:57:02 2012 -0400
Fix more clang format-nonliteral warnings (bug 5969)
---
src/common/log.c | 7 +++++++
src/or/control.c | 16 +++++++++++++---
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/common/log.c b/src/common/log.c
index ac98f13..f2999f4 100644
--- a/src/common/log.c
+++ b/src/common/log.c
@@ -137,6 +137,13 @@ static void close_log(logfile_t *victim);
static char *domain_to_string(log_domain_mask_t domain,
char *buf, size_t buflen);
+static INLINE char *format_msg(char *buf, size_t buf_len,
+ log_domain_mask_t domain, int severity, const char *funcname,
+ const char *format, va_list ap, size_t *msg_len_out)
+ CHECK_PRINTF(6,0);
+static void logv(int severity, log_domain_mask_t domain, const char *funcname,
+ const char *format, va_list ap)
+ CHECK_PRINTF(4,0);
/** Name of the application: used to generate the message we write at the
* start of each new log. */
diff --git a/src/or/control.c b/src/or/control.c
index d6e6932..8aa4240 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -126,6 +126,13 @@ typedef int event_format_t;
static void connection_printf_to_buf(control_connection_t *conn,
const char *format, ...)
CHECK_PRINTF(2,3);
+static void send_control_event_impl(uint16_t event, event_format_t which,
+ const char *format, va_list ap)
+ CHECK_PRINTF(3,0);
+static int control_event_status(int type, int severity, const char *format,
+ va_list args)
+ CHECK_PRINTF(3,0);
+
static void send_control_done(control_connection_t *conn);
static void send_control_event(uint16_t event, event_format_t which,
const char *format, ...)
@@ -3918,6 +3925,7 @@ control_event_my_descriptor_changed(void)
static int
control_event_status(int type, int severity, const char *format, va_list args)
{
+ char *user_buf = NULL;
char format_buf[160];
const char *status, *sev;
@@ -3949,13 +3957,15 @@ control_event_status(int type, int severity, const char *format, va_list args)
log_warn(LD_BUG, "Unrecognized status severity %d", severity);
return -1;
}
- if (tor_snprintf(format_buf, sizeof(format_buf), "650 %s %s %s\r\n",
- status, sev, format)<0) {
+ if (tor_snprintf(format_buf, sizeof(format_buf), "650 %s %s\r\n",
+ status, sev)<0) {
log_warn(LD_BUG, "Format string too long.");
return -1;
}
+ tor_vasprintf(&user_buf, format, args);
- send_control_event_impl(type, ALL_FORMATS, format_buf, args);
+ send_control_event(type, ALL_FORMATS, "%s %s", format_buf, user_buf);
+ tor_free(user_buf);
return 0;
}