emscripten-core / emscripten-core/emscripten

CFI using multiple tables

Open
#23,956 10 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
27.6k
Forks
3.6k
Avg merge
1d 1h
Merged PRs (30d)
105

Description

we'd like to see emscripten experiment with using multiple tables for CFI. we can imagine a couple of ways to use them, both based on the same core idea:

1. putting functions into tables based on the type of the function, with no regard for the pointer value of such functions.
2. putting functions into tables based on the type of the function and padding the tables such that they're full of nulls, ensuring every function has a unique pointer value.

what do you think? both are useful in their own ways - (1) breaks a bunch of existing code in new and exciting ways (something about pointer comparisons between different function types being UB) while (2) is just plain regular CFI, but it does waste a lot of memory.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.