Skip to content

Fix a corner case of use-after-free with never started profiler#271

Merged
szegedi merged 1 commit intomainfrom
szegedi/small-fortifications
Feb 16, 2026
Merged

Fix a corner case of use-after-free with never started profiler#271
szegedi merged 1 commit intomainfrom
szegedi/small-fortifications

Conversation

@szegedi
Copy link

@szegedi szegedi commented Feb 16, 2026

What does this PR do?:
Moves GC callback registration from WallProfiler constructor to StartImpl, to be symmetrical with their deregistration through StopImpl->Dispose.

Motivation:
While we don't do this right now, it's possible to create a profiler and not start it. In that case, it will also never be stopped, and a GC callback that is installed can be invoked on a deleted profiler causing a use-after-free. With this change, the callbacks are only registered when the profiler is started, so their lifecycle follows that of start/stop.

Additional Notes:
This was broken out of #255 as a simple small fix. It comes up sometimes with ASAN especially when a test fails when we're trying to update dependencies.

…heir deregistration through StopImpl->Dispose.
@szegedi szegedi added the semver-patch Bug or security fixes, mainly label Feb 16, 2026
@github-actions
Copy link

Overall package size

Self size: 1.77 MB
Deduped: 2.16 MB
No deduping: 2.16 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | source-map | 0.7.6 | 185.63 kB | 185.63 kB | | pprof-format | 2.2.1 | 163.06 kB | 163.06 kB | | p-limit | 3.1.0 | 7.75 kB | 13.78 kB | | delay | 5.0.0 | 11.17 kB | 11.17 kB | | node-gyp-build | 3.9.0 | 8.81 kB | 8.81 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@szegedi szegedi merged commit b5aec75 into main Feb 16, 2026
67 of 68 checks passed
@szegedi szegedi deleted the szegedi/small-fortifications branch February 16, 2026 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver-patch Bug or security fixes, mainly

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants