google / google/webcrypto.dart

Ensure correct handling of errors from thread-local storage

Open
#63 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.