Skip to content

Registering ZIP progress callback twice doesn't work #18431

Closed
@YuanchengJiang

Description

@YuanchengJiang

Description

The following code:

<?php
$file = $dirname . '__tmp_oo_progress_trampoline.zip';
class TrampolineTest {
public function __call(string $name, array $arguments): void {
}
}
$o = new TrampolineTest();
$callback = [$o, 'trampoline'];
$zip = new ZipArchive;
if (!$zip->open($file, ZIPARCHIVE::CREATE)) {
}
var_dump($zip->registerProgressCallback(0.5, $callback));
var_dump($zip->addFromString('foo', 'entry #1'));
try {
var_dump($zip->registerProgressCallback(0.5, $callback));
} catch (Throwable $e) {
}

Resulted in this output:

/home/phpfuzz/WorkSpace/flowfusion/php-src/Zend/zend_API.h:852:6: runtime error: member access within null pointer of type 'zend_function' (aka 'union _zend_function')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/phpfuzz/WorkSpace/flowfusion/php-src/Zend/zend_API.h:852:6 in 

To reproduce:

./php-src/sapi/cli/php  ./test.php

Commit:

4f3244351dad83333b27114c3f5be16d72e2e663

Configurations:

CC="clang-12" CXX="clang++-12" CFLAGS="-DZEND_VERIFY_TYPE_INFERENCE" CXXFLAGS="-DZEND_VERIFY_TYPE_INFERENCE" ./configure --enable-debug --enable-address-sanitizer --enable-undefined-sanitizer --enable-re2c-cgoto --enable-fpm --enable-litespeed --enable-phpdbg-debug --enable-zts --enable-bcmath --enable-calendar --enable-dba --enable-dl-test --enable-exif --enable-ftp --enable-gd --enable-gd-jis-conv --enable-mbstring --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvmsg --enable-zend-test --with-zlib --with-bz2 --with-curl --with-enchant --with-gettext --with-gmp --with-mhash --with-ldap --with-libedit --with-readline --with-snmp --with-sodium --with-xsl --with-zip --with-mysqli --with-pdo-mysql --with-pdo-pgsql --with-pgsql --with-sqlite3 --with-pdo-sqlite --with-webp --with-jpeg --with-freetype --enable-sigchild --with-readline --with-pcre-jit --with-iconv

Operating System:

Ubuntu 20.04 Host, Docker 0599jiangyc/flowfusion:latest

This report is automatically generated by FlowFusion

PHP Version

4f32443

Operating System

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions