Stack overflow no location
Aperta
Nessuno ha ancora preso questa issue.
Bug
Extension: standard
Status: Verified
- Lingua principale
- C
- Stelle
- 40.4k
- Fork
- 8.1k
- Merge medio
- 2g 13h
- PR unite (30g)
- 96
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia eseguendo il reproducer poc.php fornito con il comando indicato per PHP 8.6.0 e opcache JIT. Traccia il percorso di overflow dello stack di array_merge_recursive e determina come dovrebbe essere segnalata la posizione mancante. Il lavoro è completo quando il fallimento dispone di una posizione o di una diagnostica utile e il reproducer è coperto da un test di regressione appropriato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- php
- Ambito
- backend
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 45/100