Skip to content

Fix: Prevent Null Pointer Dereference and memory leaks in newBrushFamilyFromProtoInternal#568

Open
DarnExploit141 wants to merge 2 commits intogoogle:mainfrom
DarnExploit141:main
Open

Fix: Prevent Null Pointer Dereference and memory leaks in newBrushFamilyFromProtoInternal#568
DarnExploit141 wants to merge 2 commits intogoogle:mainfrom
DarnExploit141:main

Conversation

@DarnExploit141
Copy link
Copy Markdown

This PR fixes a potential Null Pointer Dereference and memory leak in brush_serialization_jni.cc.

Changes:

  • Added a null check for new_id_jstring to prevent crashes if onDecodeTexture returns null.
  • Added a null check for GetStringUTFChars to prevent crashes on out-of-memory conditions.
  • Added ReleaseStringUTFChars to properly release the JNI memory and prevent memory leaks.

Signed-off-by: proExploit1 <xxxproxxxb@gmail.com>
@google-cla
Copy link
Copy Markdown

google-cla Bot commented Mar 28, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@DarnExploit141
Copy link
Copy Markdown
Author

While reviewing the fix, I noticed an additional potential null dereference that wasn't covered in this PR:

jstring encoded_id_jstring =
    env->NewStringUTF(std::string(encoded_id).c_str());

NewStringUTF can return null on out-of-memory conditions. If this happens, passing it to CallObjectMethod would result in undefined behavior. A null check here would make the fix more complete:

if (encoded_id_jstring == nullptr) {
    return absl::InternalError("NewStringUTF failed (OOM).");
}

I can include this in a follow-up commit if the maintainers agree.

Signed-off-by: DARN <xxxproxxxb@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant