On Tue., 1 Oct. 2019, 3:05 am Nick Coghlan, <ncoghlan@gmail.com> wrote:

The only outcome I'd consider undesirable is shipping a public API
that's more awkward to use than it needs to be, doesn't conform to the
accepted version of the PEP, and doesn't protect against most of the
potential sources of segfaults arising from an ABI mismatch (and could
even cause them if the supplied "struct_size" value were to be trusted
directly, rather than being treated as a lookup value into a set of
known-valid struct sizes. The currently checked in code at least
doesn't do that, but that's only because it ignores the new
struct_size field entirely when making the memset() calls to
initialise the config structs).

My apologies, the "only" here is incorrect, as the existing code also has guards to make sure that the passed in struct size is exactly the same as the interpreter's compile time size (it's effectively a lookup set with one member).