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

stack overflow in asan/dom?

Aberta
#23,118 1 comentário 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
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
c
Domínio
backend

Direção de pesquisa

Comece reproduzindo o exemplo do PHP 8.6.0 usando DOMDocument::loadXML(), LIBXML_PARSEHUGE e cloneNode(true) sob ASan com USE_ZEND_ALLOC-0. Rastreie o caminho de clonagem do DOM e sua interação com libxml2; o trabalho estará concluído quando a entrada profundamente aninhada relatada não causar mais um estouro de pilha.

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

Descrição

Bug Extension: dom Status: Needs Triage Status: Verified
Description

The following code:

<?php
$xml = str_repeat('<a>', 400000) . 'x' . str_repeat('</a>', 400000);
$d=new DOMDocument(); $d->loadXML($xml, LIBXML_PARSEHUGE);
$c = $d->documentElement->cloneNode(true);

Resulted in this output:

    #191 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #192 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #193 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #194 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #195 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #196 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #197 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #198 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #199 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #200 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #201 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #202 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #203 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #204 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #205 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #206 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #207 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #208 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #209 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #210 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #211 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #212 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #213 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #214 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #215 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #216 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #217 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #218 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #219 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #220 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #221 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #222 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #223 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #224 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #225 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #226 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #227 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #228 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #229 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #230 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #231 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #232 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #233 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #234 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #235 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #236 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #237 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #238 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #239 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #240 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #241 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #242 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #243 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #244 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #245 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #246 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #247 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)
    #248 0x7fc83e16234b  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7234b)
    #249 0x7fc83e16168a  (/lib/x86_64-linux-gnu/libxml2.so.2+0x7168a)

SUMMARY: AddressSanitizer: stack-overflow ../../../../src/libsanitizer/sanitizer_common/sanitizer_stackdepot.cpp:54 in __sanitizer::StackDepotNode::hash(__sanitizer::StackTrace const&)
==45==ABORTING
USE_ZEND_ALLOC-0
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.