]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] enable Wmissing-format-attribute
authorChristian Göttsche <cgzones@googlemail.com>
Mon, 6 Apr 2020 14:27:42 +0000 (16:27 +0200)
committerChristian Göttsche <cgzones@googlemail.com>
Sat, 11 Apr 2020 12:16:30 +0000 (14:16 +0200)
cmake/CompilerWarnings.cmake
contrib/hiredis/async.h
contrib/hiredis/hiredis.h
contrib/hiredis/sds.h
contrib/librdns/dns_private.h
contrib/librdns/logger.h
contrib/librdns/resolver.c
contrib/replxx/include/replxx.h
contrib/replxx/include/replxx.hxx
contrib/uthash/utstring.h
src/libstat/backends/redis_backend.c

index 2dcad92ef4d50e921933f5b6c425ea4ce81eae33..fe6735c354dd58f077bd1209e41ab0bbe6ca331e 100644 (file)
@@ -11,6 +11,7 @@ CHECK_C_COMPILER_FLAG(-Wstrict-prototypes SUPPORT_WSTRICT_PROTOTYPES)
 CHECK_C_COMPILER_FLAG(-pedantic SUPPORT_PEDANTIC_FLAG)
 CHECK_C_COMPILER_FLAG(-Wno-unused-const-variable SUPPORT_WNO_UNUSED_CONST)
 CHECK_C_COMPILER_FLAG(-Wmissing-noreturn SUPPORT_WMISSING_NORETURN)
+CHECK_C_COMPILER_FLAG(-Wmissing-format-attribute SUPPORT_WMISSING_FORMAT_ATTRIBUTE)
 # GCC 6 specific
 CHECK_C_COMPILER_FLAG(-Wnull-dereference SUPPORT_WNULL_DEREFERENCE)
 CHECK_C_COMPILER_FLAG(-Wduplicated-cond SUPPORT_WDUPLICATED_COND)
@@ -71,6 +72,9 @@ ENDIF(SUPPORT_WIMPLICIT_FALLTHROUGH)
 IF(SUPPORT_WMISSING_NORETURN)
     ADD_COMPILE_OPTIONS("-Wmissing-noreturn")
 ENDIF(SUPPORT_WMISSING_NORETURN)
+IF(SUPPORT_WMISSING_FORMAT_ATTRIBUTE)
+    ADD_COMPILE_OPTIONS("-Wmissing-format-attribute")
+ENDIF(SUPPORT_WMISSING_FORMAT_ATTRIBUTE)
 
 CHECK_C_COMPILER_FLAG(-fPIC SUPPORT_FPIC)
 IF(SUPPORT_FPIC)
index 3d20241c6e117412d5f24d6c0374576aa649b906..40a5a49c83e6e1f715b4dc41ab3178cddc505e5a 100644 (file)
@@ -119,7 +119,13 @@ void redisAsyncHandleWrite(redisAsyncContext *ac);
 
 /* Command functions for an async context. Write the command to the
  * output buffer and register the provided callback. */
+#ifdef __GNUC__
+__attribute__((format(printf, 4, 0)))
+#endif
 int redisvAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *format, va_list ap);
+#ifdef __GNUC__
+__attribute__((format(printf, 4, 5)))
+#endif
 int redisAsyncCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *format, ...);
 int redisAsyncCommandArgv(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, int argc, const char **argv, const size_t *argvlen);
 int redisAsyncFormattedCommand(redisAsyncContext *ac, redisCallbackFn *fn, void *privdata, const char *cmd, size_t len);
index 153bfd7a63c2cf90388f6dc61253b0d28955d973..6b531b9105453526d6fd46c204d52e41da2e4ca8 100644 (file)
@@ -125,7 +125,13 @@ redisReader *redisReaderCreate(void);
 void freeReplyObject(void *reply);
 
 /* Functions to format a command according to the protocol. */
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 0)))
+#endif
 int redisvFormatCommand(char **target, const char *format, va_list ap);
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 3)))
+#endif
 int redisFormatCommand(char **target, const char *format, ...);
 int redisFormatCommandArgv(char **target, int argc, const char **argv, const size_t *argvlen);
 int redisFormatSdsCommandArgv(sds *target, int argc, const char ** argv, const size_t *argvlen);
@@ -204,7 +210,13 @@ int redisAppendFormattedCommand(redisContext *c, const char *cmd, size_t len);
 
 /* Write a command to the output buffer. Use these functions in blocking mode
  * to get a pipeline of commands. */
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 0)))
+#endif
 int redisvAppendCommand(redisContext *c, const char *format, va_list ap);
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 3)))
+#endif
 int redisAppendCommand(redisContext *c, const char *format, ...);
 int redisAppendCommandArgv(redisContext *c, int argc, const char **argv, const size_t *argvlen);
 
@@ -213,7 +225,13 @@ int redisAppendCommandArgv(redisContext *c, int argc, const char **argv, const s
  * NULL if there was an error in performing the request, otherwise it will
  * return the reply. In a non-blocking context, it is identical to calling
  * only redisAppendCommand and will always return NULL. */
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 0)))
+#endif
 void *redisvCommand(redisContext *c, const char *format, va_list ap);
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 3)))
+#endif
 void *redisCommand(redisContext *c, const char *format, ...);
 void *redisCommandArgv(redisContext *c, int argc, const char **argv, const size_t *argvlen);
 
index 19a2abd317fd4e3a6d3f157f3adc745a23fbc484..a494f2efc5d50ee26b78e469c94d841881410440 100644 (file)
@@ -71,6 +71,9 @@ sds sdscatsds(sds s, const sds t);
 sds sdscpylen(sds s, const char *t, size_t len);
 sds sdscpy(sds s, const char *t);
 
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 0)))
+#endif
 sds sdscatvprintf(sds s, const char *fmt, va_list ap);
 #ifdef __GNUC__
 sds sdscatprintf(sds s, const char *fmt, ...)
index f734e231201b605ab007bfad75a3ef896f3930c4..3f0bee43728d01c477ed27d0ba16569311d01870 100644 (file)
@@ -138,6 +138,9 @@ struct rdns_resolver {
        struct rdns_plugin *curve_plugin;
        struct rdns_fake_reply *fake_elts;
 
+#ifdef __GNUC__
+       __attribute__((format(printf, 4, 0)))
+#endif
        rdns_log_function logger;
        void *log_data;
        enum rdns_log_level log_level;
index f9c33bbe4c9cce0f94b6e2d264bf4e635410992f..80728763e6e2b12199bed00f44ed3ba2d6d204fe 100644 (file)
 #include <stdarg.h>
 #include "dns_private.h"
 
+#ifdef __GNUC__
+__attribute__((format(printf, 4, 0)))
+#endif
 void rdns_logger_internal (void *log_data, enum rdns_log_level level,
                const char *function, const char *format,
                va_list args);
 
+#ifdef __GNUC__
+__attribute__((format(printf, 4, 5)))
+#endif
 void rdns_logger_helper (struct rdns_resolver *resolver,
                enum rdns_log_level level,
                const char *function, const char *format, ...);
index aec0e938131b27c3bbc4ba14bb5933c175cca543..98807f38ecff6257d860179a10d6753cfb95a9a8 100644 (file)
@@ -758,14 +758,14 @@ rdns_make_request_full (
                        type = req->requested_names[i].type;
                        if (queries > 1) {
                                if (!rdns_add_rr (req, cur_name, clen, type, &comp)) {
-                                       rdns_err ("cannot add rr", cur_name);
+                                       rdns_err ("cannot add rr");
                                        REF_RELEASE (req);
                                        rnds_compression_free (comp);
                                        return NULL;
                                }
                        } else {
                                if (!rdns_add_rr (req, cur_name, clen, type, NULL)) {
-                                       rdns_err ("cannot add rr", cur_name);
+                                       rdns_err ("cannot add rr");
                                        REF_RELEASE (req);
                                        rnds_compression_free (comp);
                                        return NULL;
@@ -1125,4 +1125,4 @@ void rdns_resolver_set_fake_reply (struct rdns_resolver *resolver,
 
                HASH_ADD (hh, resolver->fake_elts, key, sizeof (*srch) + len, fake_rep);
        }
-}
\ No newline at end of file
+}
index cb1c917b45e1ee1bcc9adc523b46a18b95bc9454..4bdad512775e4d66dd11421fdd2c77a668bb6451 100644 (file)
@@ -356,6 +356,9 @@ REPLXX_IMPEXP void replxx_set_state( Replxx*, ReplxxState* state );
  *
  * \param fmt - printf style format.
  */
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 3)))
+#endif
 REPLXX_IMPEXP int replxx_print( Replxx*, char const* fmt, ... );
 
 /*! \brief Schedule an emulated key press event.
index 3fe90e670af3b419b8702dfc60fa416758dac698..1401ea27c91ada666965a5e917ab2e70161cd091 100644 (file)
@@ -370,6 +370,9 @@ public:
         *
         * \param fmt - printf style format.
         */
+#ifdef __GNUC__
+       __attribute__((format(printf, 2, 3)))
+#endif
        void print( char const* fmt, ... );
 
        /*! \brief Schedule an emulated key press event.
index f11f34b77e755a9ea2b5d71ae0d382533a08c0f3..6130fac534a32695207c3503bf92ac4380e2105a 100644 (file)
@@ -120,6 +120,9 @@ do {                                                             \
 
 #define utstring_body(s) ((s)->d)
 
+#ifdef __GNUC__
+__attribute__((format(printf, 2, 0)))
+#endif
 _UNUSED_ static void utstring_printf_va(UT_string *s, const char *fmt, va_list ap) {
    int n;
    va_list cp;
index 107af34900ee90e22eaeb1951ec2a211a9771be6..392f1704ef007b71c8cab7a7e0c995c6408c57be 100644 (file)
@@ -372,6 +372,12 @@ rspamd_redis_maybe_auth (struct redis_stat_ctx *ctx, redisAsyncContext *redis)
        }
 }
 
+// the `b` conversion type character is unknown to gcc
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
 static rspamd_fstring_t *
 rspamd_redis_tokens_to_query (struct rspamd_task *task,
                struct redis_stat_runtime *rt,
@@ -625,6 +631,9 @@ rspamd_redis_tokens_to_query (struct rspamd_task *task,
 
        return out;
 }
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
 
 static void
 rspamd_redis_store_stat_signature (struct rspamd_task *task,