diff --git a/include/asterisk/iostream.h b/include/asterisk/iostream.h
index c641ffb3732d226a8001361928570ae9269b8084..e9816ac9b1aea28542c93727592d847652bf2e11 100644
--- a/include/asterisk/iostream.h
+++ b/include/asterisk/iostream.h
@@ -109,7 +109,8 @@ ssize_t ast_iostream_read(struct ast_iostream *stream, void *buf, size_t count);
 ssize_t ast_iostream_gets(struct ast_iostream *stream, char *buf, size_t count);
 ssize_t ast_iostream_discard(struct ast_iostream *stream, size_t count);
 ssize_t ast_iostream_write(struct ast_iostream *stream, const void *buf, size_t count);
-ssize_t ast_iostream_printf(struct ast_iostream *stream, const void *fmt, ...);
+ssize_t __attribute__((format(printf, 2, 3))) ast_iostream_printf(
+	struct ast_iostream *stream, const char *fmt, ...);
 
 struct ast_iostream* ast_iostream_from_fd(int *fd);
 int ast_iostream_start_tls(struct ast_iostream **stream, SSL_CTX *ctx, int client);
diff --git a/main/iostream.c b/main/iostream.c
index 2a2601d3809d35990406e73361012d813674ed4b..d91863319b6885c62f9cd92283b107f398791a5f 100644
--- a/main/iostream.c
+++ b/main/iostream.c
@@ -443,7 +443,7 @@ ssize_t ast_iostream_write(struct ast_iostream *stream, const void *buf, size_t
 	}
 }
 
-ssize_t ast_iostream_printf(struct ast_iostream *stream, const void *fmt, ...)
+ssize_t ast_iostream_printf(struct ast_iostream *stream, const char *fmt, ...)
 {
 	char sbuf[512], *buf = sbuf;
 	int len, len2, ret = -1;