fortify-headers 3.0
In late 2022, I started to contribute to fortify-headers, and the original author, sin, was kind enough to entrust the project to me.
Unfortunately, I feel that I haven’t lived up to the expectations, both from others, but also mine. I enthusiastically piled more code on top of it, instead of moving slowly and making sure that I wasn’t breaking anything. Sure, I added a test suite, but it can’t cover every edge-cases, especially when dealing with code used system-wide in virtually all C packages/software. It also didn’t help that I had a "complicated" life those last couple of years.
Now onto the good news: I now have some peace of mi…
fortify-headers 3.0
In late 2022, I started to contribute to fortify-headers, and the original author, sin, was kind enough to entrust the project to me.
Unfortunately, I feel that I haven’t lived up to the expectations, both from others, but also mine. I enthusiastically piled more code on top of it, instead of moving slowly and making sure that I wasn’t breaking anything. Sure, I added a test suite, but it can’t cover every edge-cases, especially when dealing with code used system-wide in virtually all C packages/software. It also didn’t help that I had a "complicated" life those last couple of years.
Now onto the good news: I now have some peace of mind and free time again, meaning I can go back to try to properly maintain fortify-headers. I shelved everything I added to it on an experimental branch (so that nothing is lost, including old releases that I did), and started clean on top a sin’s latest master again. I’m not happy about rewriting history, I think it was least worse option in my opinion, versus having a big "revert" commit, or an interminable daisy-chain of revert.
So what’s new in this release 3.0 compared to sin’s version? A handful of things:
- A complete testsuite, running on github actions, with
-Wall -Wextra - Clang support, thanks to q66
accessandformatannotations- A missing include in select.h was added
- wctomb was removed, as it was buggy
- Support for
swabwas added - a 64b fix for time
Attribution was of course kept, and everything is available on https://git.2f30.org/fortify-headers/log.html and https://github.com/jvoisin/fortify-headers (to use github CI). QA-wise, on top of the testsuite, a full OpenWRT build is used as a smoke test. This should prevent bugs from creeping in.
I’d love if people of you could take a quick look at this new tentative, so that I can ask downstream projects to give a new try at upgrading from 1.1.