{
 "about": "The test files of the fix commit 3584a98bd, read from its file list in the evidence vault (sources/github-php-src-fix-commit-3584a98bd/raw/commit-3584a98bd.files.txt), and the rules that join each to the remediation it exercises. A test is in the commit (basis: code); which remediation it exercises is read from its name by the rules below (basis: inferred, by dev@php.newsroom) until someone checks it against the test's body. The first rule that matches wins; a test no rule matches is joined to the commit only. Kept by dev@php.newsroom; the GRC desk may add or correct rules.",
 "source": "github-php-src-fix-commit-3584a98bd",
 "commit": "3584a98bda0f2c0d367255b046798b0d3a221a19",
 "file_list_sha256": "d9b8465ccfbd22fa5bcd5f1a8c58c11b4af70befe488051f843fd4f45bf559b5",
 "rules": [
  {
   "match": "/oom_hard_limit",
   "remediation": "fix-hard-limit",
   "why": "named for the hard memory limit"
  },
  {
   "match": "/oom_soft_limit",
   "remediation": "fix-soft-limit",
   "why": "named for the soft memory limit"
  },
  {
   "match": "/oom_(interrupt|pending_at_shutdown|after_main_script)",
   "remediation": "fix-unwind",
   "why": "an out-of-memory error unwinding at an interrupt, at shutdown or after the main script"
  },
  {
   "match": "/(oom_request_parsing|rfc1867_|zend_test_handle_post_data)",
   "remediation": "fix-bounded-parsing",
   "why": "request and multipart parsing"
  },
  {
   "match": "/[^/]*oom[^/]*\\.phpt$",
   "remediation": "fix-fallible",
   "why": "an out-of-memory error inside one function, which the fallible allocations let a test reach"
  },
  {
   "match": "^(ext/zend_test/[^/]+$|run-tests\\.php$)",
   "remediation": null,
   "harness": true,
   "why": "the test harness, changed so the new tests can run"
  }
 ],
 "files": [
  "Zend/tests/bug40770.phpt",
  "Zend/tests/bug54268.phpt",
  "Zend/tests/bug76846.phpt",
  "Zend/tests/fibers/get-return-after-bailout.phpt",
  "Zend/tests/gh11189.phpt",
  "Zend/tests/gh11189_1.phpt",
  "Zend/tests/oom_SplFixedArray___unserialize.phpt",
  "Zend/tests/oom_SplFixedArray___wakeup.phpt",
  "Zend/tests/oom_SplFixedArray_copy_ctor.phpt",
  "Zend/tests/oom_SplFixedArray_fromArray_001.phpt",
  "Zend/tests/oom_SplFixedArray_fromArray_002.phpt",
  "Zend/tests/oom_after_main_script.phpt",
  "Zend/tests/oom_array_fill_001.phpt",
  "Zend/tests/oom_array_fill_002.phpt",
  "Zend/tests/oom_array_fill_003.phpt",
  "Zend/tests/oom_array_fill_004.phpt",
  "Zend/tests/oom_array_pad_001.phpt",
  "Zend/tests/oom_array_pad_002.phpt",
  "Zend/tests/oom_array_pad_003.phpt",
  "Zend/tests/oom_array_pad_004.phpt",
  "Zend/tests/oom_array_pad_005.phpt",
  "Zend/tests/oom_array_pad_006.phpt",
  "Zend/tests/oom_array_pad_007.phpt",
  "Zend/tests/oom_array_pad_008.phpt",
  "Zend/tests/oom_call_function.phpt",
  "Zend/tests/oom_call_function_002.phpt",
  "Zend/tests/oom_call_function_003.phpt",
  "Zend/tests/oom_debug_backtrace.phpt",
  "Zend/tests/oom_debug_backtrace_args.phpt",
  "Zend/tests/oom_debug_backtrace_named_args.phpt",
  "Zend/tests/oom_error_get_last.phpt",
  "Zend/tests/oom_exception_trace.phpt",
  "Zend/tests/oom_hard_limit_exceeded.phpt",
  "Zend/tests/oom_hard_limit_exceeded_during_complilation.phpt",
  "Zend/tests/oom_interrupt.phpt",
  "Zend/tests/oom_interrupt_unfinished_call_frame.phpt",
  "Zend/tests/oom_interrupt_unfinished_call_frame_fiber.phpt",
  "Zend/tests/oom_json_decode_001.phpt",
  "Zend/tests/oom_json_decode_002.phpt",
  "Zend/tests/oom_json_decode_003.phpt",
  "Zend/tests/oom_json_decode_004.phpt",
  "Zend/tests/oom_json_decode_005.phpt",
  "Zend/tests/oom_json_decode_006.phpt",
  "Zend/tests/oom_json_decode_007.phpt",
  "Zend/tests/oom_pending_at_shutdown.phpt",
  "Zend/tests/oom_range_001.phpt",
  "Zend/tests/oom_range_002.phpt",
  "Zend/tests/oom_range_003.phpt",
  "Zend/tests/oom_range_004.phpt",
  "Zend/tests/oom_request_parsing.phpt",
  "Zend/tests/oom_soft_limit_exceeded.phpt",
  "Zend/tests/oom_soft_limit_exceeded_fcall.phpt",
  "Zend/tests/oom_soft_limit_in_callback.phpt",
  "Zend/tests/oom_str_repeat.phpt",
  "Zend/tests/oom_unserialize_001.phpt",
  "Zend/tests/oom_unserialize_002.phpt",
  "Zend/tests/oom_unserialize_003.phpt",
  "Zend/tests/oom_unserialize_004.phpt",
  "Zend/tests/oom_unserialize_005.phpt",
  "Zend/tests/oom_unserialize_006.phpt",
  "Zend/tests/oom_unserialize_007.phpt",
  "Zend/tests/oom_unserialize_008.phpt",
  "Zend/tests/oom_unserialize_009.phpt",
  "Zend/tests/oom_unserialize_011.phpt",
  "Zend/tests/oom_unserialize_012.phpt",
  "Zend/tests/oom_unserialize_013.phpt",
  "Zend/tests/oom_unserialize_014.phpt",
  "Zend/tests/oom_unserialize_015.phpt",
  "Zend/tests/oom_unserialize_016.phpt",
  "Zend/tests/singleton_array.phpt",
  "ext/bz2/tests/oom_bzcompress.phpt",
  "ext/bz2/tests/oom_bzdecompress.phpt",
  "ext/bz2/tests/oom_bzip2_decompress_filter.phpt",
  "ext/curl/tests/oom_curl_exec.phpt",
  "ext/curl/tests/oom_curl_multi_exec.phpt",
  "ext/date/tests/oom_date_create.phpt",
  "ext/date/tests/oom_date_create_immutable.phpt",
  "ext/date/tests/oom_date_interval_create_from_date_string.phpt",
  "ext/date/tests/oom_date_modify.phpt",
  "ext/date/tests/oom_date_parse.phpt",
  "ext/date/tests/oom_dateinterval_construct.phpt",
  "ext/date/tests/oom_dateinterval_createfromdatestring.phpt",
  "ext/date/tests/oom_dateperiod_construct.phpt",
  "ext/date/tests/oom_datetime_construct.phpt",
  "ext/date/tests/oom_datetime_modify.phpt",
  "ext/date/tests/oom_datetimeimmutable_construct.phpt",
  "ext/date/tests/oom_datetimeimmutable_modify.phpt",
  "ext/date/tests/oom_strtotime.phpt",
  "ext/dom/tests/oom_xpath.phpt",
  "ext/exif/tests/oom_exif_numeric_metadata.phpt",
  "ext/exif/tests/oom_exif_read_data_tags.phpt",
  "ext/exif/tests/oom_exif_scan_jpeg_header.phpt",
  "ext/exif/tests/oom_exif_thumbnail_large_file_001.phpt",
  "ext/exif/tests/oom_exif_thumbnail_large_file_002.phpt",
  "ext/exif/tests/oom_exif_thumbnail_tiff.phpt",
  "ext/fileinfo/tests/oom_cdf_sector_chain.phpt",
  "ext/filter/tests/oom_filter_default_encoded.phpt",
  "ext/filter/tests/oom_filter_input.phpt",
  "ext/filter/tests/oom_filter_input_array.phpt",
  "ext/filter/tests/oom_filter_var.phpt",
  "ext/filter/tests/oom_filter_var_array.phpt",
  "ext/filter/tests/oom_filter_var_full_special_chars.phpt",
  "ext/gd/tests/oom_imagecreatefrombmp.phpt",
  "ext/gd/tests/oom_imagecreatefromgd2.phpt",
  "ext/gd/tests/oom_imagecreatefromgd2_chunkbuf.phpt",
  "ext/gd/tests/oom_imagecreatefromgd2_compbuf.phpt",
  "ext/gd/tests/oom_imagecreatefromgd2part.phpt",
  "ext/gd/tests/oom_imagecreatefromgd2part_chunkbuf.phpt",
  "ext/gd/tests/oom_imagecreatefromgd2part_compbuf.phpt",
  "ext/gd/tests/oom_imagecreatefromgif.phpt",
  "ext/gd/tests/oom_imagecreatefrompng.phpt",
  "ext/gd/tests/oom_imagecreatefromstring.phpt",
  "ext/gd/tests/oom_imagecreatefromtga.phpt",
  "ext/gd/tests/oom_imagecreatefromwbmp.phpt",
  "ext/gd/tests/oom_imagecreatefromxbm.phpt",
  "ext/gd/tests/oom_imagepalettetotruecolor.phpt",
  "ext/iconv/tests/oom_iconv.phpt",
  "ext/iconv/tests/oom_iconv_mime_decode.phpt",
  "ext/iconv/tests/oom_iconv_mime_decode_headers.phpt",
  "ext/iconv/tests/oom_iconv_mime_encode.phpt",
  "ext/iconv/tests/oom_iconv_mime_encode_line_length.phpt",
  "ext/iconv/tests/oom_iconv_stream_filter.phpt",
  "ext/imap/tests/oom_imap_mime_header_decode.phpt",
  "ext/intl/tests/oom_normalizer_normalize.phpt",
  "ext/intl/tests/oom_normalizer_normalize_func.phpt",
  "ext/intl/tests/oom_uconverter_convert.phpt",
  "ext/intl/tests/oom_uconverter_transcode.phpt",
  "ext/json/tests/json_decode_oom_utf8_substitute.phpt",
  "ext/json/tests/json_encode_oom_escape.phpt",
  "ext/json/tests/json_encode_oom_partial_output.phpt",
  "ext/json/tests/json_encode_oom_pretty_print.phpt",
  "ext/json/tests/json_encode_oom_string_prealloc.phpt",
  "ext/mbstring/tests/oom_buf_growth.phpt",
  "ext/mbstring/tests/oom_mb_convert_case.phpt",
  "ext/mbstring/tests/oom_mb_convert_encoding.phpt",
  "ext/mbstring/tests/oom_mb_convert_variables.phpt",
  "ext/mbstring/tests/oom_mb_convert_variables_many.phpt",
  "ext/mbstring/tests/oom_mb_decode_mimeheader.phpt",
  "ext/mbstring/tests/oom_mb_encode_mimeheader.phpt",
  "ext/mbstring/tests/oom_mb_encode_numericentity.phpt",
  "ext/mbstring/tests/oom_mb_ereg_replace.phpt",
  "ext/mbstring/tests/oom_mb_eregi_replace.phpt",
  "ext/mbstring/tests/oom_mb_parse_str.phpt",
  "ext/mbstring/tests/oom_mb_split.phpt",
  "ext/mbstring/tests/oom_mb_str_split.phpt",
  "ext/mbstring/tests/oom_mb_str_split_filter.phpt",
  "ext/mbstring/tests/oom_mb_str_split_fixed_width.phpt",
  "ext/mbstring/tests/oom_mb_str_split_length.phpt",
  "ext/mbstring/tests/oom_mb_strcut_filter.phpt",
  "ext/mbstring/tests/oom_mb_strcut_length.phpt",
  "ext/mbstring/tests/oom_mb_strimwidth.phpt",
  "ext/mbstring/tests/oom_mb_strtoupper.phpt",
  "ext/mbstring/tests/oom_mb_substr_count.phpt",
  "ext/mbstring/tests/oom_mb_substr_length.phpt",
  "ext/pcre/tests/oom_preg_filter.phpt",
  "ext/pcre/tests/oom_preg_match_all.phpt",
  "ext/pcre/tests/oom_preg_match_captures.phpt",
  "ext/pcre/tests/oom_preg_replace.phpt",
  "ext/pcre/tests/oom_preg_replace_callback.phpt",
  "ext/pcre/tests/oom_preg_replace_callback_array.phpt",
  "ext/pcre/tests/oom_preg_split.phpt",
  "ext/session/tests/rfc1867_incomplete_class_reserved_props.phpt",
  "ext/session/tests/rfc1867_no_user_code.phpt",
  "ext/session/tests/rfc1867_sid_invalid.phpt",
  "ext/simplexml/tests/oom_array_cast.phpt",
  "ext/simplexml/tests/oom_json_encode.phpt",
  "ext/simplexml/tests/oom_xpath.phpt",
  "ext/soap/tests/oom_soapclient_call.phpt",
  "ext/soap/tests/oom_soapclient_dorequest_chunked.phpt",
  "ext/soap/tests/oom_soapclient_dorequest_close.phpt",
  "ext/soap/tests/oom_soapclient_dorequest_content_length.phpt",
  "ext/soap/tests/oom_soapclient_response_headers.phpt",
  "ext/soap/tests/oom_soapclient_soapcall.phpt",
  "ext/soap/tests/oom_soapserver_handle_array.phpt",
  "ext/soap/tests/oom_soapserver_handle_headers.phpt",
  "ext/soap/tests/oom_soapserver_handle_parameters.phpt",
  "ext/standard/tests/GHSA-96wq-48vp-hh57.phpt",
  "ext/standard/tests/array/oom_array_chunk.phpt",
  "ext/standard/tests/array/oom_array_map_zip.phpt",
  "ext/standard/tests/file/fread_oom_chunk_size.phpt",
  "ext/standard/tests/file/fread_oom_filter_chunk_size.phpt",
  "ext/standard/tests/file/fread_oom_length.phpt",
  "ext/standard/tests/file/oom_file.phpt",
  "ext/standard/tests/file/oom_file_get_contents.phpt",
  "ext/standard/tests/image/oom_getimagesize_cws.phpt",
  "ext/standard/tests/image/oom_getimagesize_xbm.phpt",
  "ext/standard/tests/image/oom_getimagesizefromstring_cws.phpt",
  "ext/standard/tests/serialize/incomplete_class_raw_payload_markers.phpt",
  "ext/standard/tests/streams/bug61115-1.phpt",
  "ext/standard/tests/streams/oom_stream_copy_to_stream_memory.phpt",
  "ext/standard/tests/streams/oom_stream_get_contents.phpt",
  "ext/standard/tests/streams/stream_get_line_oom_chunk_size.phpt",
  "ext/standard/tests/strings/chunk_split_variation3.phpt",
  "ext/standard/tests/strings/oom_explode.phpt",
  "ext/standard/tests/strings/oom_implode.phpt",
  "ext/standard/tests/strings/oom_levenshtein.phpt",
  "ext/standard/tests/strings/oom_nl2br.phpt",
  "ext/standard/tests/strings/oom_setcookie_value.phpt",
  "ext/standard/tests/strings/oom_str_getcsv.phpt",
  "ext/standard/tests/strings/oom_str_ireplace.phpt",
  "ext/standard/tests/strings/oom_str_replace.phpt",
  "ext/standard/tests/strings/oom_str_split.phpt",
  "ext/standard/tests/strings/oom_str_word_count.phpt",
  "ext/standard/tests/strings/oom_strtr.phpt",
  "ext/standard/tests/strings/oom_substr_replace.phpt",
  "ext/standard/tests/strings/oom_unpack.phpt",
  "ext/standard/tests/strings/str_pad_variation1.phpt",
  "ext/standard/tests/strings/wordwrap_memory_limit_002.phpt",
  "ext/standard/tests/strings/wordwrap_memory_limit_003.phpt",
  "ext/standard/tests/strings/wordwrap_memory_limit_004.phpt",
  "ext/tokenizer/tests/token_get_all_TOKEN_PARSE_oom_feedback.phpt",
  "ext/xml/tests/oom_xml_parse_attributes.phpt",
  "ext/xml/tests/oom_xml_parse_into_struct.phpt",
  "ext/xml/tests/oom_xml_parse_ns.phpt",
  "ext/xmlreader/tests/oom_xmlreader_getattribute.phpt",
  "ext/xmlreader/tests/oom_xmlreader_getattributeno.phpt",
  "ext/xmlreader/tests/oom_xmlreader_getattributens.phpt",
  "ext/xmlreader/tests/oom_xmlreader_lookupnamespace.phpt",
  "ext/xmlreader/tests/oom_xmlreader_readinnerxml.phpt",
  "ext/xmlreader/tests/oom_xmlreader_readouterxml.phpt",
  "ext/xmlreader/tests/oom_xmlreader_readstring.phpt",
  "ext/zend_test/test.c",
  "ext/zend_test/test.stub.php",
  "ext/zend_test/test_arginfo.h",
  "ext/zend_test/tests/observer_bug81430_2.phpt",
  "ext/zend_test/tests/observer_bug81435.phpt",
  "ext/zend_test/tests/observer_error_01.phpt",
  "ext/zend_test/tests/observer_fiber_functions_03.phpt",
  "ext/zend_test/tests/zend_test_handle_post_data.phpt",
  "ext/zlib/tests/oom_deflate_add.phpt",
  "ext/zlib/tests/oom_gzcompress.phpt",
  "ext/zlib/tests/oom_gzdecode.phpt",
  "ext/zlib/tests/oom_gzfile.phpt",
  "ext/zlib/tests/oom_gzgets.phpt",
  "ext/zlib/tests/oom_gzpassthru.phpt",
  "ext/zlib/tests/oom_inflate_add.phpt",
  "ext/zlib/tests/oom_readgzfile.phpt",
  "ext/zlib/tests/oom_zlib_inflate_filter.phpt",
  "run-tests.php",
  "sapi/cli/tests/oom_request_parsing_next_request.phpt",
  "sapi/cli/tests/oom_shutdown_function_next_request.phpt",
  "sapi/fpm/tests/bug77023-pm-dynamic-blocking-sigquit.phpt",
  "tests/basic/GHSA-2cv3-554h-jpmh_multipart.phpt",
  "tests/basic/GHSA-2cv3-554h-jpmh_urlencoded.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_001.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_002.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_003.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_004.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_005.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_006.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_007.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_008.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_009.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_010.phpt",
  "tests/basic/GHSA-f883-x959-3vr9_011.phpt",
  "tests/basic/oom_rfc1867_array_upload_name.phpt",
  "tests/basic/oom_rfc1867_early_report.phpt",
  "tests/basic/oom_rfc1867_field_name.phpt",
  "tests/basic/oom_rfc1867_files.phpt",
  "tests/basic/oom_rfc1867_files_registration.phpt",
  "tests/basic/oom_rfc1867_files_registration_full_path.phpt",
  "tests/basic/oom_rfc1867_form_value.phpt",
  "tests/basic/oom_rfc1867_header_continuation.phpt",
  "tests/basic/oom_rfc1867_header_count.phpt",
  "tests/basic/oom_rfc1867_long_header_line.phpt",
  "tests/basic/oom_rfc1867_mb_encoding.phpt",
  "tests/basic/oom_rfc1867_post_vars.phpt",
  "tests/basic/oom_rfc1867_upload_progress.phpt",
  "tests/output/gh15179.phpt",
  "tests/output/oom_in_internal_output_handler.phpt"
 ]
}
