Workaround for regex bug in Android SDK #13695
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation:
If Netty is started from an Android app and certificate/private key are passed into the builder as input streams, an error occurs: org.conscrypt.OpenSSLX509CertificateFactory: org.conscrypt.OpenSSLX509CertificateFactory: java.lang.RuntimeException: error:0c0000a2:ASN.1 encoding routines:OPENSSL_internal:NOT_ENOUGH_DATA
Due to a bug in the regex implementation in Android SDK, the certificate is parsed from the input stream as BEGIN and further creating of the X.509 certificate fails.
See https://issuetracker.google.com/issues/293206296
Modifications:
The end position of the latest match is saved into a variable and used as the start position for the next match as a workaround for the bug.
Result:
Fixes #13515
Netty starts on Android without an error.