google / google/webcrypto.dart
Ensure correct handling of errors from thread-local storage
Open
bug
- Dominant language
- Dart
- Stars
- 116
- Forks
- 110
- Avg merge
- 6d 8h
- Merged PRs (30d)
- 9
Description
BoringCrypto exposes `ERR_clear_error()` which clears the thread-local error stack.
For any function in BoringCrypto which may set error state, we **must** read the error stack, before we do any async/await, as this may trigger the code to continue running on a different thread.
Perhaps, we have to use `_Scope.sync` for everything, and ensure that we check/clear the error stack at the end of every `_Scope.sync` block.
Or maybe we have to invent a new block form.
Contributor guide
Assessment
This issue has not been assessed yet.