Skip to content

8.3 crash with mb_detect_encoding #11476

Closed
@brainfoolong

Description

@brainfoolong

Description

The following code:

<?php
// iso 8859-1 string of:
/*
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;aaaaaaa aaa aaöaaaa aa.aöaaaa
*/

$str = base64_decode("YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhDQphYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYTthYWFhYWFhIGFhYSBhYfZhYWFhIGFhLmH2YWFhYQ0K");
$detectedEncoding = mb_detect_encoding($str, mb_list_encodings(), true);
// never reaches, crash here with core dump
var_dump($detectedEncoding);

Resulted in this output:

None, because of silent crash.

But I expected this output instead:

Some encoding information

This script crashes in php8.3 alpha 1 on windows 10 64 bit in command line (and also via php-cgi in apache).
Core dump is attached.

php.exe_230619_100518_CrashHangAnalysis.mht.txt

Summary of crash: In php.exe_230619_100518.dmp the assembly instruction at php_mbstring!onig_unicode_define_user_property+290d in C:\srv\php8\ext\php_mbstring.dll from The PHP Group

Php 8.2 is fine.

PHP Version

8.3 alpha1

Operating System

Windows 10 64 bit

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions