stack overflow in array/sanitizer
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 52/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Bereich
- backend, testing-qa
Rechercherichtung
Beginnen Sie mit dem Reproducer im Issue und untersuchen Sie php_array_merge_recursive in ext/standard/array.c:3975. Führen Sie ihn mit AddressSanitizer und USE_ZEND_ALLOC=0 aus und fügen Sie anschließend einen Regressionstest hinzu, der den verschachtelten Fall von array_merge_recursive abdeckt; abgeschlossen ist die Aufgabe, wenn der Reproducer keinen Stapelüberlauf mehr verursacht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description
The following code:
<?php
$a=[]; for($i=0;$i<1000000;$i++){$a=['k'=>$a];}
$b=array_merge_recursive($a,$a);
Resulted in this output:
#226 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#227 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#228 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#229 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#230 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#231 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#232 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#233 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#234 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#235 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#236 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#237 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#238 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#239 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#240 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#241 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#242 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#243 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#244 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#245 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#246 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#247 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#248 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
#249 0x55fe77cec009 in php_array_merge_recursive /home/php-src/ext/standard/array.c:3975
SUMMARY: AddressSanitizer: stack-overflow ../../../../src/libsanitizer/asan/asan_stack.cpp:63 in __sanitizer::BufferedStackTrace::UnwindImpl(unsigned long, unsigned long, void*, bool, unsigned int)
==26==ABORTING
USE_ZEND_ALLOC=0 php poc.php
PHP Version
8.6.0
Operating System
ubuntu 22.04
- Vorherrschende Sprache
- C
- Sterne
- 40.4k
- Forks
- 8.2k
- Ø Merge
- 2 T. 3 Std.
- Gemergte PRs (30 T.)
- 157
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus php/php-src
-
NULL pointer dereference in php_ini.c (PHP 8.3)Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. OffenBug Status: Needs Triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Bug Status: Needs Feedback
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
php/php-src#24121 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Variant analysis: 1 unfixed sibling safety gap in php-srcEvtl. vergeben @kamil-tekiela hat das vor 8 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
php/php-src#23958 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
sapi_lsapi_ub_write does not return bytes written in lsapi modeEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. OffenBug Status: Needs Triage
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
Maintainer antworten meist innerhalb von 1 Tag
-
Bug Status: Needs Triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
Ähnliche Issues
-
[P2] Workspace updates silently ignore forbidden assignments while staging the rowEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 70/100
Maintainer antworten meist innerhalb von 4 Tagen
-
category:port-update
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
microsoft/vcpkg#54338 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
area:http-gateway good first issue priority:low type:docs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
crazy-goat/php-fpm-ng#828 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
SunDevilRocketry/Flight-Computer-Firmware#347 ·
Maintainer antworten meist innerhalb von 3 Tagen