Also fixed some formats. Without this attribute, GCC does not see the several 
functions as variants of the -f family of functions which prevents it from 
warning about their usage. Might help with optimization too. I avoided defining 
the attributes in utils.h since different functions have different requirements.

Signed-off by: Rosen Penev <ros...@gmail.com>
---
 blobmsg.c | 5 +++--
 ulog.c    | 6 +++++-
 usock.c   | 2 +-
 ustream.c | 2 ++
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/blobmsg.c b/blobmsg.c
index 1e93376..73f927e 100644
--- a/blobmsg.c
+++ b/blobmsg.c
@@ -227,7 +227,7 @@ blobmsg_open_nested(struct blob_buf *buf, const char *name, 
bool array)
        return (void *)offset;
 }
 
-int
+__attribute__((format(printf, 3, 0))) int
 blobmsg_vprintf(struct blob_buf *buf, const char *name, const char *format, 
va_list arg)
 {
        va_list arg2;
@@ -248,7 +248,8 @@ blobmsg_vprintf(struct blob_buf *buf, const char *name, 
const char *format, va_l
        return ret;
 }
 
-int
+
+__attribute__((format(printf, 3, 4))) int
 blobmsg_printf(struct blob_buf *buf, const char *name, const char *format, ...)
 {
        va_list ap;
diff --git a/ulog.c b/ulog.c
index 296605d..7a862b3 100644
--- a/ulog.c
+++ b/ulog.c
@@ -86,12 +86,13 @@ static void ulog_defaults(void)
        _ulog_initialized = 1;
 }
 
+__attribute__((format(printf, 2, 0)))
 static void ulog_kmsg(int priority, const char *fmt, va_list ap)
 {
        FILE *kmsg;
 
        if ((kmsg = fopen("/dev/kmsg", "r+")) != NULL) {
-               fprintf(kmsg, "<%u>", priority);
+               fprintf(kmsg, "<%d>", priority);
 
                if (_ulog_ident)
                        fprintf(kmsg, "%s: ", _ulog_ident);
@@ -101,6 +102,7 @@ static void ulog_kmsg(int priority, const char *fmt, 
va_list ap)
        }
 }
 
+__attribute__((format(printf, 2, 0)))
 static void ulog_stdio(int priority, const char *fmt, va_list ap)
 {
        FILE *out = stderr;
@@ -111,6 +113,7 @@ static void ulog_stdio(int priority, const char *fmt, 
va_list ap)
        vfprintf(out, fmt, ap);
 }
 
+__attribute__((format(printf, 2, 0)))
 static void ulog_syslog(int priority, const char *fmt, va_list ap)
 {
        vsyslog(priority, fmt, ap);
@@ -141,6 +144,7 @@ void ulog_threshold(int threshold)
        _ulog_threshold = threshold;
 }
 
+__attribute__((format(printf, 2, 3)))
 void ulog(int priority, const char *fmt, ...)
 {
        va_list ap;
diff --git a/usock.c b/usock.c
index 0ce5390..0983806 100644
--- a/usock.c
+++ b/usock.c
@@ -247,7 +247,7 @@ const char *usock_port(int port)
        if (port < 0 || port > 65535)
                return NULL;
 
-       snprintf(buffer, sizeof(buffer), "%u", port);
+       snprintf(buffer, sizeof(buffer), "%d", port);
 
        return buffer;
 }
diff --git a/ustream.c b/ustream.c
index d36ce08..2570577 100644
--- a/ustream.c
+++ b/ustream.c
@@ -464,6 +464,7 @@ int ustream_write(struct ustream *s, const char *data, int 
len, bool more)
 
 #define MAX_STACK_BUFLEN       256
 
+__attribute__((format(printf, 2, 0)))
 int ustream_vprintf(struct ustream *s, const char *format, va_list arg)
 {
        struct ustream_buf_list *l = &s->w;
@@ -531,6 +532,7 @@ int ustream_vprintf(struct ustream *s, const char *format, 
va_list arg)
        return wr;
 }
 
+__attribute__((format(printf, 2, 3)))
 int ustream_printf(struct ustream *s, const char *format, ...)
 {
        va_list arg;
-- 
2.7.4


_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to