diff mbox series

config.mak.dev: add -Wformat-security

Message ID 20180907181905.GA15897@sigill.intra.peff.net (mailing list archive)
State New, archived
Headers show
Series config.mak.dev: add -Wformat-security | expand

Commit Message

Jeff King Sept. 7, 2018, 6:19 p.m. UTC
We currently build cleanly with -Wformat-security, and it's
a good idea to make sure we continue to do so (since calls
that trigger the warning may be security vulnerabilities).

Note that we cannot use the stronger -Wformat-nonliteral, as
there are case where we are clever with passing around
pointers to string literals. E.g., bisect_rev_setup() takes
bad_format and good_format parameters. These ultimately come
from literals, but they still trigger the warning.

Some of these might be fixable (e.g., by passing flags from
which we locally select a format), and might even be worth
fixing (not because of security, but just because it's an
easy mistake to pass the wrong format). But there are other
cases which are likely quite hard to fix (we actually
generate formats in a local buffer in some cases). So let's
punt on that for now and start with -Wformat-security, which
is supposed to catch the most important cases.

Signed-off-by: Jeff King <peff@peff.net>
---
 config.mak.dev | 1 +
 1 file changed, 1 insertion(+)

Comments

Duy Nguyen Sept. 8, 2018, 1:38 p.m. UTC | #1
On Fri, Sep 7, 2018 at 8:21 PM Jeff King <peff@peff.net> wrote:
>
> We currently build cleanly with -Wformat-security, and it's
> a good idea to make sure we continue to do so (since calls
> that trigger the warning may be security vulnerabilities).

Nice. I had this flag in my config.mak too before switching to
DEVELOPER=1. Didn't realize I lost the flag until now.

> Signed-off-by: Jeff King <peff@peff.net>
> ---
>  config.mak.dev | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/config.mak.dev b/config.mak.dev
> index 9a998149d9..f832752454 100644
> --- a/config.mak.dev
> +++ b/config.mak.dev
> @@ -14,6 +14,7 @@ CFLAGS += -Wpointer-arith
>  CFLAGS += -Wstrict-prototypes
>  CFLAGS += -Wunused
>  CFLAGS += -Wvla
> +CFLAGS += -Wformat-security

Maybe keep it sorted
diff mbox series

Patch

diff --git a/config.mak.dev b/config.mak.dev
index 9a998149d9..f832752454 100644
--- a/config.mak.dev
+++ b/config.mak.dev
@@ -14,6 +14,7 @@  CFLAGS += -Wpointer-arith
 CFLAGS += -Wstrict-prototypes
 CFLAGS += -Wunused
 CFLAGS += -Wvla
+CFLAGS += -Wformat-security
 
 ifndef COMPILER_FEATURES
 COMPILER_FEATURES := $(shell ./detect-compiler $(CC))