|
Mantis - Quercus
|
|||||
| Viewing Issue Advanced Details | |||||
|
|
|||||
| ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
| 2697 | major | always | 05-26-08 13:13 | 09-05-08 22:38 | |
|
|
|||||
| Reporter: | perololo | Platform: | |||
| Assigned To: | nam | OS: | |||
| Priority: | normal | OS Version: | |||
| Status: | closed | Product Version: | 3.2.0 | ||
| Product Build: | Resolution: | fixed | |||
| Projection: | none | ||||
| ETA: | none | Fixed in Version: | 3.2.1 | ||
|
|
|||||
| Summary: | 0002697: [PATCH] unserialize does not work properly with lot of dereferencing | ||||
| Description: |
unserialize failed to operate properly with lot of references and the following scenario after some already dereferenced references: Parent.children = array(Child.parent --> reference-to-parent ) Error: ------ Index out of bounds: SEVERE: java.io.IOException: reference id '438' not found in list (max id: 428, parse index: 12209) java.io.IOException: reference id '438' not found in list (max id: 428, parse index: 12209) at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:319) at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:280) at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:232) at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:280) at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:232) at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:280) at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:280) at com.caucho.quercus.lib.VariableModule.unserialize(VariableModule.java:675) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Reason: ------- When dereferencing takes place, the new read reference does not add any value to the reference list (_valueList). But this list must contain exactly as many data elements as there are in the serialized string. Therefore after some deferencing _valueList contains less values than expected. An index-out-of-bounds exception may take place. Solution: --------- All read references must add a dummy value to _valueList. --> see attached patch |
||||
| Steps To Reproduce: | |||||
| Additional Information: | |||||
| Relationships | |||||
| Attached Files: |
|
||||
| Notes | |||||
|
|
|||||
|
|
||||