Skip to content

Enable _FORTIFY_SOURCE and -fstack-protector-strong - #504

Merged
xroche merged 1 commit into
masterfrom
p3-4-hardening
Jul 7, 2026
Merged

Enable _FORTIFY_SOURCE and -fstack-protector-strong#504
xroche merged 1 commit into
masterfrom
p3-4-hardening

Conversation

@xroche

@xroche xroche commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Adds the two flags missing from the OpenSSF hardening set (audit item P3-4): _FORTIFY_SOURCE=3 (falls back to =2; skipped when the toolchain predefines it or in -fsanitize builds, whose interceptors want the unfortified calls) and -fstack-protector-strong (plain -fstack-protector as fallback). The rest of the list (stack-clash, cf-protection, relro/now, noexecstack, PIE, format-security) was already enabled.

Bundles autoconf-archive's AX_ADD_FORTIFY_SOURCE into m4/ because distro copies can be too old: Debian trixie ships serial 4, which only knows =2.

Verified: both flags reach every compile line, the warning set matches master (the same three warnings, now under their __builtin___*_chk spellings), make check passes, and hardening-check reports fortified functions in both the binary and libhttrack.so.

The rest of the OpenSSF hardening set (stack-clash, cf-protection,
relro/now, noexecstack, PIE, format-security) is already enabled;
this fills the two gaps. Bundle autoconf-archive's
AX_ADD_FORTIFY_SOURCE (serial 10: tries =3, falls back to =2, no-ops
when the toolchain predefines it); distro copies can be too old
(Debian trixie ships serial 4, =2 only). Skip fortify in -fsanitize
builds, whose interceptors want the unfortified calls. Upgrade
-fstack-protector to -strong, keeping the plain form as fallback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
@xroche
xroche merged commit 8ba3cb6 into master Jul 7, 2026
16 checks passed
@xroche
xroche deleted the p3-4-hardening branch July 27, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant