You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think we take a systematic approach to this and make wrappers to `mem*` functions that behave sanely on `NULL` input.
This article [1] discusses the issue in detail and points to approaches taken by projects like boringssl. [2] There is also a proposal from prolific LLVM contributors for fixing this at the C standard level. [3]
Make the wrappers inlineable (defined in a header) so the checks can be elided by the compiler when it can be proven at the callsite that the pointer is not null already.
This article [1] discusses the issue in detail and points to approaches taken by projects like
boringssl
. [2] There is also a proposal from prolific LLVM contributors for fixing this at the C standard level. [3][1] https://davidben.net/2024/01/15/empty-slices.html
[2] https://boringssl.googlesource.com/boringssl/+/17cf2cb1d226b0ba2401304242df7ddd3b6f1ff2%5E%21/
[3] https://docs.google.com/document/d/1guH_HgibKrX7t9JfKGfWX2UCPyZOTLsnRfR6UleD1F8/edit?tab=t.0
Originally posted by @felipecrv in #44794 (comment)
The text was updated successfully, but these errors were encountered: