Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#1,673 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
20/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
cpp
Lĩnh vực
databases

Hướng nghiên cứu

Bắt đầu bằng việc xem xét vòng đời của DatabaseReference và hành vi xóa listener được mô tả trong issue, bao gồm ValueListener, ChildListener và callback onFinish được dùng cho các thao tác get. Xác định khi nào một reference có thể được hủy an toàn mà không gây ra heap-use-after-free, đồng thời ghi lại hoặc tái hiện hành vi mong đợi khi xóa listener.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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 ?

Ngôn ngữ chính
C++
Star
326
Fork
138
Merge trung bình
1 ngày 12 giờ
Pull request đã merge (30 ngày)
5

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của firebase/firebase-cpp-sdk

Tất cả issue của firebase/firebase-cpp-sdk

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.