Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Question] heap-use-after-free after deleting database::DatabaseReference

Open
#1,673 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
20/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
cpp
Domain
databases

Research direction

Start by reviewing the DatabaseReference lifetime and listener-removal behavior described in the issue, including ValueListener, ChildListener, and the onFinish callback used for get operations. Determine when a reference can be safely destroyed without a heap-use-after-free, and document or reproduce the expected behavior for listener removal.

Written by the indexing model from the issue text.

Description

needs-triage new type: question
[REQUIRED] Please fill in the following fields:
  • Pre-built SDK from the website or open-source from this repo: open source from this repo
  • Firebase C++ SDK version: all
  • Main Firebase Components in concern: Database
  • Other Firebase Components in use: -
  • Platform you are using the C++ SDK on: Linux
  • Platform you are targeting: iOS, Android, Destkop
[REQUIRED] Please describe the question here:

I have lot of issue with "heap-use-after-free". To what I understand, the issue is linked to the fact reference is removed while beeing still in use in the SDK. When I made some "get" I just wait for the onFinish callback to be sure that firebase SDK don't need the reference anymore. But when using with Listener (ValueListener or ChildListener) we have no callback saying that the remove listener is finished. Then it's not clear when the reference can be safely destroyed. I tried lot of different approach but I always ends in use after free issue. Where can I find more informations about when a reference can be destroyed without risking a crash ?

Dominant language
C++
Stars
326
Forks
138
Avg merge
1d 22h
Merged PRs (30d)
6

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from firebase/firebase-cpp-sdk

All issues in firebase/firebase-cpp-sdk

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.