Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

stack overflow in JIT

Aberta
#23,114 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Pouca atividade
Stack de tecnologia
c, php
Domínio
compilers

Direção de pesquisa

Comece reproduzindo o stack overflow com o programa PHP e o comando JIT fornecidos. Leia Zend/zend_objects.c por volta da linha 77 e Zend/zend_objects_API.c por volta da linha 193, onde o sanitizer trace se repete. O trabalho estará concluído quando o reproducer não abortar mais com um stack overflow e o comportamento de destruição de objetos estiver coberto por um teste de regressão.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Bug Category: JIT Status: Verified
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

Linguagem predominante
C
Estrelas
40.4k
Forks
8.2k
Merge médio
2d 17h
PRs com merge (30d)
115

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de php/php-src

Todas as issues de php/php-src

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.