stack overflow in JIT
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
研究方向
首先,使用提供的 PHP 程式和 JIT 指令重現 stack overflow。閱讀 Zend/zend_objects.c 第 77 行附近和 Zend/zend_objects_API.c 第 193 行附近的內容,sanitizer trace 會在那裡重複。完成標準是 reproducer 不再因 stack overflow 而中止,且物件銷毀行為由回歸測試涵蓋。
由索引模型根據 Issue 內容生成。
描述
Description
The following code:
<?php
class N { public $n; }
$o=null;
for($i=0;$i<1000000;$i++){ $x=new N; $x->n=$o; $o=$x; }
$o=null;
Resulted in this output:
_store_del /home/php-src/Zend/zend_objects_API.c:193
#344 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#345 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#346 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#347 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#348 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#349 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#350 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#351 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#352 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#353 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#354 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#355 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#356 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#357 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#358 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#359 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#360 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#361 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#362 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#363 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#364 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#365 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#366 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#367 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#368 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#369 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
#370 0x55ed1181c2b8 in zend_objects_store_del /home/php-src/Zend/zend_objects_API.c:193
#371 0x55ed1181d414 in zend_object_dtor_property /home/php-src/Zend/zend_objects.c:64
#372 0x55ed1181d414 in zend_object_std_dtor /home/php-src/Zend/zend_objects.c:94
SUMMARY: AddressSanitizer: stack-overflow /home/php-src/Zend/zend_objects.c:77 in zend_object_std_dtor
==34==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
ubuntu 22.04
- 主要語言
- C
- 星號
- 40.4k
- 分支
- 8.2k
- 平均合併
- 1 天 23 小時
- 30 天內合併 PR
- 155
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
php/php-src 的其他 Issue
-
Bug Status: Needs Triage
難度 2/5 1-3 小時 新手友好度 62/100
維護者通常 1 天內回覆
-
Feature Status: Needs Triage
難度 2/5 1-3 小時 新手友好度 73/100
維護者通常 1 天內回覆
-
Sockets from synchronous stream_socket_client() are left in non-blocking mode on Windows可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉Bug Status: Needs Triage
難度 2/5 1-3 小時 新手友好度 66/100
維護者通常 1 天內回覆
-
sapi_lsapi_ub_write does not return bytes written in lsapi mode可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉Bug Status: Needs Triage
難度 1/5 1 小時以內 新手友好度 90/100
維護者通常 1 天內回覆
-
Bug Status: Needs Triage
難度 2/5 1-3 小時 新手友好度 78/100
維護者通常 1 天內回覆
相似的 Issue
-
backlog
難度 1/5 1 小時以內 新手友好度 82/100
EchoTools/nevr-runtime#454 ·
維護者通常 1 天內回覆
-
initramfs: -type f (#18686) skips the libcurl.so.4 symlink, libcurl no longer copied into initramfs未關閉
難度 2/5 1-3 小時 新手友好度 72/100
維護者通常 2 天內回覆
-
common/json_parse: json_to_bitcoin_amount fails to detect overflow and accepts negative/empty inputs可能已有人在做 @bhuvan-somisetty 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 62/100
ElementsProject/lightning#9617 ·
維護者通常 2 天內回覆
-
難度 1/5 1 小時以內 新手友好度 62/100
-
難度 2/5 1-3 小時 新手友好度 62/100
zephyrproject-rtos/zephyr#121795 ·
維護者通常 2 天內回覆