Skip to content

Commit cc9be24

Browse files
authored
Add opt-in security flags (#611)
1 parent fa13316 commit cc9be24

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

src/bin/pg_autoctl/Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ DEFAULT_CFLAGS += -Wno-declaration-after-statement
4545
DEFAULT_CFLAGS += -Wno-missing-braces
4646
DEFAULT_CFLAGS += $(COMMON_LIBS)
4747

48+
ifdef USE_SECURITY_FLAGS
49+
# Flags taken from: https://liquid.microsoft.com/Web/Object/Read/ms.security/Requirements/Microsoft.Security.SystemsADM.10203#guide
50+
SECURITY_CFLAGS=-fstack-protector-strong -D_FORTIFY_SOURCE=2 -O2 -z noexecstack -fpie -Wl,-pie -Wl,-z,relro -Wl,-z,now -Wformat -Wformat-security -Werror=format-security
51+
DEFAULT_CFLAGS += $(SECURITY_CFLAGS)
52+
endif
53+
4854
override CFLAGS := $(DEFAULT_CFLAGS) $(CFLAGS)
4955

5056
LIBS = -L $(shell $(PG_CONFIG) --pkglibdir)

src/monitor/Makefile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,23 @@ DEFAULT_CFLAGS += -Wno-declaration-after-statement
3333

3434
# Needed for OSX
3535
DEFAULT_CFLAGS += -Wno-missing-braces
36+
37+
ifdef USE_SECURITY_FLAGS
38+
# Flags taken from: https://liquid.microsoft.com/Web/Object/Read/ms.security/Requirements/Microsoft.Security.SystemsADM.10203#guide
39+
SECURITY_CFLAGS=-fstack-protector-strong -D_FORTIFY_SOURCE=2 -O2 -z noexecstack -fpic -shared -Wl,-z,relro -Wl,-z,now -Wformat -Wformat-security -Werror=format-security
40+
DEFAULT_CFLAGS += $(SECURITY_CFLAGS)
41+
endif
42+
3643
override CFLAGS := $(DEFAULT_CFLAGS) $(CFLAGS)
3744

3845
include $(PGXS)
3946

47+
ifdef USE_SECURITY_FLAGS
48+
# Flags taken from: https://liquid.microsoft.com/Web/Object/Read/ms.security/Requirements/Microsoft.Security.SystemsADM.10203#guide
49+
SECURITY_BITCODE_CFLAGS=-fsanitize=safe-stack -fstack-protector-strong -flto -fPIC -Wformat -Wformat-security -Werror=format-security
50+
override BITCODE_CFLAGS := $(BITCODE_CFLAGS) $(SECURITY_BITCODE_CFLAGS)
51+
endif
52+
4053
cleanup-before-install:
4154
rm -f $(DESTDIR)$(datadir)/$(datamoduledir)/pgautofailover*
4255

0 commit comments

Comments
 (0)