@matheusbsbs / matheus-bagliano / commits / 28bea9e534
Fork 0

Check the format of more printf-type functions

We already have these checks in many printf-type functions that have prototypes which are in header files. Add these same checks to some more prototypes in header functions and to static functions in .c files. cc: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Tarmigan Casebolt <tarmigan+git@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Tarmigan Casebolt committed Nov 14, 2009 at 13:33 UTC 28bea9e53481fddcb12e63d8c049f0ff2917a573
10 files changed +22 -3
builtin-fsck.c
+2
@@ -47,6 +47,7 @@ static void objreport(struct object *obj, const char *severity,
47 fputs("\n", stderr);
48 }
49
50 +__attribute__((format (printf, 2, 3)))
51 static int objerror(struct object *obj, const char *err, ...)
52 {
53 va_list params;
@@ -57,6 +58,7 @@ static int objerror(struct object *obj, const char *err, ...)
58 return -1;
59 }
60
61 +__attribute__((format (printf, 3, 4)))
62 static int fsck_error_func(struct object *obj, int type, const char *err, ...)
63 {
64 va_list params;
builtin-update-index.c
+1
@@ -27,6 +27,7 @@ static int mark_valid_only;
27 #define MARK_VALID 1
28 #define UNMARK_VALID 2
29
30 +__attribute__((format (printf, 1, 2)))
31 static void report(const char *fmt, ...)
32 {
33 va_list vp;
builtin-upload-archive.c
+1
@@ -67,6 +67,7 @@ static int run_upload_archive(int argc, const char **argv, const char *prefix)
67 return write_archive(sent_argc, sent_argv, prefix, 0);
68 }
69
70 +__attribute__((format (printf, 1, 2)))
71 static void error_clnt(const char *fmt, ...)
72 {
73 char buf[1024];
cache.h
+2
@@ -961,7 +961,9 @@ extern void *alloc_object_node(void);
961 extern void alloc_report(void);
962
963 /* trace.c */
964 +__attribute__((format (printf, 1, 2)))
965 extern void trace_printf(const char *format, ...);
966 +__attribute__((format (printf, 2, 3)))
967 extern void trace_argv_printf(const char **argv, const char *format, ...);
968
969 /* convert.c */
color.h
+2
@@ -29,7 +29,9 @@ int git_color_default_config(const char *var, const char *value, void *cb);
29 int git_config_colorbool(const char *var, const char *value, int stdout_is_tty);
30 void color_parse(const char *value, const char *var, char *dst);
31 void color_parse_mem(const char *value, int len, const char *var, char *dst);
32 +__attribute__((format (printf, 3, 4)))
33 int color_fprintf(FILE *fp, const char *color, const char *fmt, ...);
34 +__attribute__((format (printf, 3, 4)))
35 int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...);
36 int color_fwrite_lines(FILE *fp, const char *color, size_t count, const char *buf);
37
daemon.c
+2
@@ -77,6 +77,7 @@ static void logreport(int priority, const char *err, va_list params)
77 }
78 }
79
80 +__attribute__((format (printf, 1, 2)))
81 static void logerror(const char *err, ...)
82 {
83 va_list params;
@@ -85,6 +86,7 @@ static void logerror(const char *err, ...)
86 va_end(params);
87 }
88
89 +__attribute__((format (printf, 1, 2)))
90 static void loginfo(const char *err, ...)
91 {
92 va_list params;
fsck.h
+1
@@ -17,6 +17,7 @@ typedef int (*fsck_walk_func)(struct object *obj, int type, void *data);
17 /* callback for fsck_object, type is FSCK_ERROR or FSCK_WARN */
18 typedef int (*fsck_error)(struct object *obj, int type, const char *err, ...);
19
20 +__attribute__((format (printf, 3, 4)))
21 int fsck_error_function(struct object *obj, int type, const char *fmt, ...);
22
23 /* descend in all linked child objects
imap-send.c
+7 -1
@@ -100,13 +100,16 @@ struct msg_data {
100
101 static int Verbose, Quiet;
102
103 +__attribute__((format (printf, 1, 2)))
104 static void imap_info(const char *, ...);
105 +__attribute__((format (printf, 1, 2)))
106 static void imap_warn(const char *, ...);
107
108 static char *next_arg(char **);
109
110 static void free_generic_messages(struct message *);
111
112 +__attribute__((format (printf, 3, 4)))
113 static int nfsnprintf(char *buf, int blen, const char *fmt, ...);
114
115 static int nfvasprintf(char **strp, const char *fmt, va_list ap)
@@ -600,6 +603,7 @@ static struct imap_cmd *v_issue_imap_cmd(struct imap_store *ctx,
603 return cmd;
604 }
605
606 +__attribute__((format (printf, 3, 4)))
607 static struct imap_cmd *issue_imap_cmd(struct imap_store *ctx,
608 struct imap_cmd_cb *cb,
609 const char *fmt, ...)
@@ -613,6 +617,7 @@ static struct imap_cmd *issue_imap_cmd(struct imap_store *ctx,
617 return ret;
618 }
619
620 +__attribute__((format (printf, 3, 4)))
621 static int imap_exec(struct imap_store *ctx, struct imap_cmd_cb *cb,
622 const char *fmt, ...)
623 {
@@ -628,6 +633,7 @@ static int imap_exec(struct imap_store *ctx, struct imap_cmd_cb *cb,
633 return get_cmd_result(ctx, cmdp);
634 }
635
636 +__attribute__((format (printf, 3, 4)))
637 static int imap_exec_m(struct imap_store *ctx, struct imap_cmd_cb *cb,
638 const char *fmt, ...)
639 {
@@ -918,7 +924,7 @@ static int get_cmd_result(struct imap_store *ctx, struct imap_cmd *tcmd)
924 if (!strcmp("NO", arg)) {
925 if (cmdp->cb.create && cmd && (cmdp->cb.trycreate || !memcmp(cmd, "[TRYCREATE]", 11))) { /* SELECT, APPEND or UID COPY */
926 p = strchr(cmdp->cmd, '"');
921 - if (!issue_imap_cmd(ctx, NULL, "CREATE \"%.*s\"", strchr(p + 1, '"') - p + 1, p)) {
927 + if (!issue_imap_cmd(ctx, NULL, "CREATE \"%.*s\"", (int)(strchr(p + 1, '"') - p + 1), p)) {
928 resp = RESP_BAD;
929 goto normal;
930 }
merge-recursive.c
+3 -1
@@ -86,6 +86,7 @@ static void flush_output(struct merge_options *o)
86 }
87 }
88
89 +__attribute__((format (printf, 3, 4)))
90 static void output(struct merge_options *o, int v, const char *fmt, ...)
91 {
92 int len;
@@ -214,7 +215,8 @@ struct tree *write_tree_from_memory(struct merge_options *o)
215 for (i = 0; i < active_nr; i++) {
216 struct cache_entry *ce = active_cache[i];
217 if (ce_stage(ce))
217 - output(o, 0, "%d %.*s", ce_stage(ce), ce_namelen(ce), ce->name);
218 + output(o, 0, "%d %.*s", ce_stage(ce),
219 + (int)ce_namelen(ce), ce->name);
220 }
221 return NULL;
222 }
strbuf.h
+1 -1
@@ -117,7 +117,7 @@ struct strbuf_expand_dict_entry {
117 };
118 extern size_t strbuf_expand_dict_cb(struct strbuf *sb, const char *placeholder, void *context);
119
120 -__attribute__((format(printf,2,3)))
120 +__attribute__((format (printf,2,3)))
121 extern void strbuf_addf(struct strbuf *sb, const char *fmt, ...);
122
123 extern size_t strbuf_fread(struct strbuf *, size_t, FILE *);