commit 5e21de3a4c621b3ade384ec9a272eadb41c4acab
parent 25ea10fea7e33a5b94e1dea9e135a5175c69841e
Author: Daniel Fahlgren <daniel@fahlgren.se>
Date:   Wed, 17 Aug 2022 13:16:18 +0200
Add printf format attributes and fix fallout
Diffstat:
8 files changed, 30 insertions(+), 17 deletions(-)
diff --git a/include/kore/jsonrpc.h b/include/kore/jsonrpc.h
@@ -73,7 +73,8 @@ enum jsonrpc_error_code
 	JSONRPC_LIMIT_REACHED		= -31997
 };
 
-void	jsonrpc_log(struct jsonrpc_request *, int, const char *, ...);
+void	jsonrpc_log(struct jsonrpc_request *, int, const char *, ...)
+	    __attribute__((format (printf, 3, 4)));
 int	jsonrpc_read_request(struct http_request *, struct jsonrpc_request *);
 void	jsonrpc_destroy_request(struct jsonrpc_request *);
 int	jsonrpc_error(struct jsonrpc_request *, int, const char *);
diff --git a/include/kore/kore.h b/include/kore/kore.h
@@ -927,9 +927,12 @@ void		kore_pool_init(struct kore_pool *, const char *,
 void		kore_pool_cleanup(struct kore_pool *);
 
 /* utils.c */
-void		kore_debug_internal(char *, int, const char *, ...);
-void		fatal(const char *, ...) __attribute__((noreturn));
-void		fatalx(const char *, ...) __attribute__((noreturn));
+void		kore_debug_internal(char *, int, const char *, ...)
+		    __attribute__((format (printf, 3, 4)));
+void		fatal(const char *, ...) __attribute__((noreturn))
+		    __attribute__((format (printf, 1, 2)));
+void		fatalx(const char *, ...) __attribute__((noreturn))
+		    __attribute__((format (printf, 1, 2)));
 
 u_int64_t	kore_time_ms(void);
 char		*kore_time_to_date(time_t);
@@ -942,7 +945,8 @@ size_t		kore_strlcpy(char *, const char *, const size_t);
 void		kore_server_disconnect(struct connection *);
 int		kore_split_string(char *, const char *, char **, size_t);
 void		kore_strip_chars(char *, const char, char **);
-int		kore_snprintf(char *, size_t, int *, const char *, ...);
+int		kore_snprintf(char *, size_t, int *, const char *, ...)
+		    __attribute__((format (printf, 4, 5)));
 long long	kore_strtonum(const char *, int, long long, long long, int *);
 double		kore_strtodouble(const char *, long double, long double, int *);
 int		kore_base64_encode(const void *, size_t, char **);
@@ -1105,8 +1109,10 @@ void		kore_buf_reset(struct kore_buf *);
 void		kore_buf_cleanup(struct kore_buf *);
 
 char	*kore_buf_stringify(struct kore_buf *, size_t *);
-void	kore_buf_appendf(struct kore_buf *, const char *, ...);
-void	kore_buf_appendv(struct kore_buf *, const char *, va_list);
+void	kore_buf_appendf(struct kore_buf *, const char *, ...)
+		    __attribute__((format (printf, 2, 3)));
+void	kore_buf_appendv(struct kore_buf *, const char *, va_list)
+		    __attribute__((format (printf, 2, 0)));
 void	kore_buf_replace_string(struct kore_buf *,
 	    const char *, const void *, size_t);
 
diff --git a/src/cli.c b/src/cli.c
@@ -124,9 +124,10 @@ static struct cli_buf	*cli_buf_alloc(size_t);
 static void		cli_buf_free(struct cli_buf *);
 static char		*cli_buf_stringify(struct cli_buf *, size_t *);
 static void		cli_buf_append(struct cli_buf *, const void *, size_t);
-static void		cli_buf_appendf(struct cli_buf *, const char *, ...);
+static void		cli_buf_appendf(struct cli_buf *, const char *, ...)
+			    __attribute__((format (printf, 2, 3)));
 static void		cli_buf_appendv(struct cli_buf *, const char *,
-			    va_list);
+			    va_list) __attribute__((format (printf, 2, 0)));
 
 static void		*cli_malloc(size_t);
 static char		*cli_strdup(const char *);
@@ -138,7 +139,8 @@ static long long	cli_strtonum(const char *, long long, long long);
 static int		cli_split_string(char *, const char *, char **, size_t);
 
 static void		usage(void) __attribute__((noreturn));
-static void		fatal(const char *, ...) __attribute__((noreturn));
+static void		fatal(const char *, ...) __attribute__((noreturn))
+			    __attribute__((format (printf, 1, 2)));
 
 static void		cli_file_close(int);
 static void		cli_run_kore(void);
@@ -154,12 +156,14 @@ static void		cli_build_cflags(struct buildopt *);
 static void		cli_build_cxxflags(struct buildopt *);
 static void		cli_build_ldflags(struct buildopt *);
 static void		cli_file_read(int, char **, size_t *);
-static void		cli_file_writef(int, const char *, ...);
+static void		cli_file_writef(int, const char *, ...)
+			    __attribute__((format (printf, 2, 3)));
 static void		cli_file_open(const char *, int, int *);
 static void		cli_file_remove(char *, struct dirent *);
 static void		cli_build_asset(char *, struct dirent *);
 static void		cli_file_write(int, const void *, size_t);
-static int		cli_vasprintf(char **, const char *, ...);
+static int		cli_vasprintf(char **, const char *, ...)
+			    __attribute__((format (printf, 2, 3)));
 static void		cli_spawn_proc(void (*cb)(void *), void *);
 static void		cli_write_asset(const char *, const char *,
 			    struct buildopt *);
diff --git a/src/http.c b/src/http.c
@@ -1351,7 +1351,7 @@ http_body_digest(struct http_request *req, char *out, size_t len)
 	int		slen;
 
 	if (len != HTTP_BODY_DIGEST_STRLEN) {
-		fatal("http_body_digest: bad len:%zu wanted:%zu",
+		fatal("http_body_digest: bad len:%zu wanted:%u",
 		    len, HTTP_BODY_DIGEST_STRLEN);
 	}
 
diff --git a/src/keymgr_openssl.c b/src/keymgr_openssl.c
@@ -219,7 +219,8 @@ static void	keymgr_acme_order_redo(void *, u_int64_t);
 static void	keymgr_acme_order_start(void *, u_int64_t);
 
 static void	keymgr_x509_ext(STACK_OF(X509_EXTENSION) *,
-		    int, const char *, ...);
+		    int, const char *, ...)
+		    __attribute__((format (printf, 3, 4)));
 
 static void	keymgr_acme_csr(const struct kore_keyreq *, struct key *);
 static void	keymgr_acme_install_cert(const void *, size_t, struct key *);
diff --git a/src/log.c b/src/log.c
@@ -28,7 +28,8 @@ struct kore_wlog {
 	char		logmsg[];
 };
 
-static void	log_print(int, const char *, ...);
+static void	log_print(int, const char *, ...)
+		    __attribute__((format (printf, 2, 3)));
 static void	log_from_worker(struct kore_msg *, const void *);
 
 static FILE	*fp = NULL;
diff --git a/src/pool.c b/src/pool.c
@@ -92,7 +92,7 @@ kore_pool_get(struct kore_pool *pool)
 
 	entry = LIST_FIRST(&(pool->freelist));
 	if (entry->state != POOL_ELEMENT_FREE)
-		fatal("%s: element %p was not free", pool->name, entry);
+		fatal("%s: element %p was not free", pool->name, (void*) entry);
 	LIST_REMOVE(entry, list);
 
 	entry->state = POOL_ELEMENT_BUSY;
diff --git a/src/worker.c b/src/worker.c
@@ -839,7 +839,7 @@ worker_domain_check(struct kore_domain *dom)
 		if (stat(dom->cafile, &st) == -1)
 			fatalx("'%s': %s", dom->cafile, errno_s);
 		if (access(dom->cafile, R_OK) == -1)
-			fatalx("'%s': not readable", dom->cafile, errno_s);
+			fatalx("'%s': not readable", dom->cafile);
 	}
 }