Skip to content

cc-wrapper: ensure NIX_HARDENING_ENABLE fortify3 implies fortify too#253194

Merged
risicle merged 1 commit intoNixOS:stagingfrom
risicle:ris-nix-hardening-enable-fortify3-imply-fortify
Oct 23, 2023
Merged

cc-wrapper: ensure NIX_HARDENING_ENABLE fortify3 implies fortify too#253194
risicle merged 1 commit intoNixOS:stagingfrom
risicle:ris-nix-hardening-enable-fortify3-imply-fortify

Conversation

@risicle
Copy link
Contributor

@risicle risicle commented Sep 3, 2023

Description of changes

i.e. even if fortify3 is in hardening_unsupported_flags

This fixes a rather obscure piece of behaviour that probably wouldn't have been noticed by anything other than my hardening flag test suite (see #253186).

But it makes the clang and gcc paths behave ever so slightly differently due to clang being marked with hardeningUnsupportedFlags = [ "fortify3" ];. It currently has the effect of also disabling fortify if only fortify3 is mentioned in NIX_HARDENING_ENABLE for some reason, and I think most people would find that behaviour surprising.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.11 Release Notes (or backporting 23.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

@risicle risicle added the 6.topic: stdenv Standard environment label Sep 3, 2023
@github-actions github-actions bot removed the 6.topic: stdenv Standard environment label Sep 3, 2023
@ofborg ofborg bot added 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. labels Sep 4, 2023
even if fortify3 is in hardening_unsupported_flags
@risicle risicle force-pushed the ris-nix-hardening-enable-fortify3-imply-fortify branch from b5f6139 to 4c6fd59 Compare September 28, 2023 20:49
@risicle risicle marked this pull request as ready for review September 28, 2023 22:47
@risicle risicle requested a review from a user September 28, 2023 22:47
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/prs-ready-for-review/3032/2705

@risicle risicle merged commit 25920d8 into NixOS:staging Oct 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants