The comment says:
// However, if by chance libc::dlsym does return UNINIT, there will not
// be undefined behavior. libc::dlsym will just be called each time ptr()
// is called. This would be inefficient, but correct.
It seems like we're converging on the idea that before a sandbox is enabled, getrandom::get_random[_uninit]() must be called once. Is it also required that it return Ok(_) before the sandbox can be enabled? That might be too strict of a requirement.
But, if we don't require it to return Ok(_) at least once, then the application may enable its sandbox, in which case calling dlsym would not be "inefficient, but correct" as it will instead likely kill the process.
The comment says:
It seems like we're converging on the idea that before a sandbox is enabled,
getrandom::get_random[_uninit]()must be called once. Is it also required that it returnOk(_)before the sandbox can be enabled? That might be too strict of a requirement.But, if we don't require it to return
Ok(_)at least once, then the application may enable its sandbox, in which case callingdlsymwould not be "inefficient, but correct" as it will instead likely kill the process.