diff --git a/ext/fileinfo/fileinfo.c b/ext/fileinfo/fileinfo.c index d3680c5755f2..c0cc8877bf99 100644 --- a/ext/fileinfo/fileinfo.c +++ b/ext/fileinfo/fileinfo.c @@ -344,6 +344,9 @@ PHP_FUNCTION(finfo_file) RETURN_THROWS(); } php_stream_context *context = php_stream_context_from_zval(zcontext, false); + if (!context) { + RETURN_THROWS(); + } /* Set options for the current file/buffer. */ if (options) { diff --git a/ext/fileinfo/tests/gh18267.phpt b/ext/fileinfo/tests/gh18267.phpt new file mode 100644 index 000000000000..ba7647288d1d --- /dev/null +++ b/ext/fileinfo/tests/gh18267.phpt @@ -0,0 +1,14 @@ +--TEST-- +GH-18267 finfo_file() assertion trigger on NULL stream context +--EXTENSIONS-- +fileinfo +--FILE-- +file("test",FILEINFO_NONE, STDERR); +} catch (\TypeError $e) { + echo $e->getMessage(); +} +--EXPECT-- +finfo::file(): supplied resource is not a valid Stream-Context resource