diff options
| author | ArtSin <artsin666@gmail.com> | 2025-08-05 16:39:26 +0400 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu.nakada@gmail.com> | 2025-08-05 22:19:55 +0900 |
| commit | a6aaeb9acfa47ebfafed051069f7ea870ded4b99 (patch) | |
| tree | 0092499d52ed8af11dda3b9a9120ce893f56814d /ruby_atomic.h | |
| parent | 3d8af5df11e8dba8ccd37b03f9f5b92b2bc66dcb (diff) | |
load.c: fix `prev_ext_config` clobbering in `require_internal`
The variable `prev_ext_config` is modified by `ext_config_push` between
`setjmp` and `longjmp` calls. Since `ext_config_push` and `ext_config_pop`
are small and likely to be inlined, `prev_ext_config` can be allocated on
a register and get clobbered. Fix by making it `volatile`.
This bug can be observed by adding a check for values greater than 1 in
`th2->ext_config.ractor_safe` after `ext_config_pop` and building with Clang.
Diffstat (limited to 'ruby_atomic.h')
0 files changed, 0 insertions, 0 deletions
