HomeFreeBSD

libc: tests: add testing infrastructure for _FORTIFY_SOURCE

Description

libc: tests: add testing infrastructure for _FORTIFY_SOURCE

The _FORTIFY_SOURCE tests will be generated by a lua script to avoid a
lot of redundancy in writing these tests. For each function that we're
fortifying, the plan is to test at least the following three scenarios:

  • Writing up to one byte before the end of the buffer,
  • Writing up to the end of the buffer,
  • Writing one byte past the end of the buffer

The buffer is shoved into a struct on the stack to guarantee a stack
layout in which we have a valid byte after the buffer so that level 2
fortification will trip and we can have confidence that it wasn't some
other stack/memory protection instead.

The generated tests are divided roughly into which header we're
attributing them to so that we can parallelize the build -- the full set
is a bit over 9000 lines of C and takes 11s to build on the hardware
that I'm testing on if it's a single monolothic file.

Reviewed by: markj
Sponsored by: Klara, Inc.
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D45678

Details

Provenance
kevansAuthored on Jul 13 2024, 5:16 AM
Reviewer
markj
Differential Revision
D45678: libc: tests: add testing infrastructure for _FORTIFY_SOURCE
Parents
rG4719366192d3: libc: move __ssp_overlap back out into <ssp/ssp.h>
Branches
Unknown
Tags
Unknown