Guard NULL from GetStringUTFChars in raiseTypeError - #646
Open
SAY-5 wants to merge 2 commits into
Open
Conversation
Signed-off-by: Sai Asish Y <say.apm35@gmail.com>
Member
|
It appears there are 3 possible failure modes a JVM could use when
There is nothing we can do in the first case. This fix is good for the second case. In the third case having a java exception set is likely to cause problems later. Since this new code handles the exception I think we need to add a call to clear the JNI exception. |
…Error Signed-off-by: Sai Asish Y <say.apm35@gmail.com>
Author
|
Good catch on the OutOfMemoryError case. I added an |
bsteffensmeier
approved these changes
Jul 22, 2026
bsteffensmeier
left a comment
Member
There was a problem hiding this comment.
Looks good to me, thanks
ndjensen
approved these changes
Jul 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #643. In
raiseTypeError, the return value ofGetStringUTFCharswas passed straight toPyErr_Formatas a%sargument. Per the JNI spec that call returns NULL if it can't allocate the native string, and formatting NULL with%scrashes. This falls back to "" for the message and skips the matchingReleaseStringUTFCharswhen nothing was returned, so the type-error path stays intact on that rare allocation failure.