mirror of https://github.com/php/php-src
Browse Source
Directly fail unserialization when trying to acquire an r/R reference to an UNDEF HT slot. Previously this left an UNDEF and later deleted the index/key from the HT. What actually caused the issue here is a combination of two factors: First, the key deletion was performed using the hash API, rather than the symtable API, such that the element was not actually removed if it used an integral string key. Second, a subsequent deletion operation, while collecting trailing UNDEF ranges, would mark the element as available for reuse (leaving a corrupted HT state with nNumOfElemnts > nNumUsed). Fix this by failing early and dropping the deletion code.pull/2704/head
5 changed files with 614 additions and 585 deletions
1153
ext/standard/var_unserializer.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Loading…
Reference in new issue