diff options
author | Alex Dowad <alexinbeijing@gmail.com> | 2020-10-29 23:10:04 +0200 |
---|---|---|
committer | Alex Dowad <alexinbeijing@gmail.com> | 2020-10-30 22:07:08 +0200 |
commit | d44235acaeb4b2ec0c17a479d048652649e850a9 (patch) | |
tree | dbc809733bccf667af9105b342893cf9e765bf56 /ext/openssl/php_openssl.h | |
parent | 904c1b6589b999a8e387215ac3c8fce9e4ab62a8 (diff) | |
download | php-git-d44235acaeb4b2ec0c17a479d048652649e850a9.tar.gz |
Convert numeric string array keys to integers correctly in JITted code
While fixing bugs in mbstring, one of my new test cases failed with a strange
error message stating: 'Warning: Undefined array key 1...', when clearly the
array key had been set properly.
GDB'd that sucker and found that JIT'd PHP code was calling directly into
`zend_hash_add_new` (which was not converting the numeric string key to an
integer properly). But where was that code coming from? I examined the disasm,
looked up symbols to figure out where call instructions were going, then grepped
the codebase for those function names. It soon became clear that the disasm I
was looking at was compiled from `zend_jit_fetch_dim_w_helper`.
Diffstat (limited to 'ext/openssl/php_openssl.h')
0 files changed, 0 insertions, 0 deletions