Stack overflow no location
Đang mở
Chưa có ai nhận issue này.
Bug
Extension: standard
Status: Verified
- Ngôn ngữ chính
- C
- Star
- 40.4k
- Fork
- 8.2k
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 96
Mô tả
Description
The following code:
<?php
$a=[]; for($i=0;$i<1000000;$i++){ $a=['k'=>$a]; }
$b=array_merge_recursive($a,$a);
echo "ok\n";
Resulted in this output:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==56==ERROR: AddressSanitizer: stack-overflow on address 0x7ffffca8dff8 (pc 0x7f0bfc038c33 bp 0x7ffffca8e000 sp 0x7ffffca8e000 T0)
<empty stack>
SUMMARY: AddressSanitizer: stack-overflow
==56==ABORTING
USE_ZEND_ALLOC=0 php -d "opcache.enable=1" -d "opcache.enable_cli=1" -d "opcache.jit=tracing" -d "opcache.jit_hot_loop=1" -d "opcache.jit_hot_func=1" poc.php
PHP Version
8.6.0
Operating System
No response
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách chạy reproducer poc.php được cung cấp với lệnh PHP 8.6.0 và opcache JIT đã nêu. Theo dõi đường dẫn tràn ngăn xếp của array_merge_recursive và xác định vị trí bị thiếu nên được báo cáo như thế nào. Công việc được xem là hoàn tất khi lỗi có vị trí hoặc thông tin chẩn đoán hữu ích và reproducer được bao phủ bởi một kiểm thử hồi quy phù hợp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- php
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 45/100