Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0005511 [Quercus] major always 08-28-13 13:22 08-28-13 13:22
Reporter jpalmisa View Status public  
Assigned To
Priority normal Resolution open Platform
Status new   OS
Projection none   OS Version
ETA none Fixed in Version Product Version 4.0.36
  Product Build
Summary 0005511: unserialize() fails with IOException when unserializing PHP class the implements Serializabe
Description When I attempt to unserialize objects that implement the PHP Serializable interface Quercus throws:

java.io.IOException: option not recognized 'C'
                          at com.caucho.quercus.lib.UnserializeReader.unserialize(UnserializeReader.java:334)
                           at com.caucho.quercus.lib.VariableModule.unserialize(VariableModule.java:697)
                           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:597)
                           at com.caucho.quercus.module.StaticFunction.invoke(StaticFunction.java:113)
                           at com.caucho.quercus.env.JavaInvoker.callJavaMethod(JavaInvoker.java:814)
                           at com.caucho.quercus.env.JavaInvoker.callMethod(JavaInvoker.java:690)
                           at com.caucho.quercus.env.JavaInvoker.call(JavaInvoker.java:671)
                           at com.caucho.quercus.expr.CallExpr.evalImpl(CallExpr.java:226)
                           at com.caucho.quercus.expr.CallExpr.evalCopy(CallExpr.java:154)
                           at com.caucho.quercus.expr.Expr.evalAssignValue(Expr.java:585)
                           at com.caucho.quercus.expr.BinaryAssignExpr.eval(BinaryAssignExpr.java:88)
                           at com.caucho.quercus.expr.Expr.evalTop(Expr.java:540)
                           at com.caucho.quercus.statement.ExprStatement.execute(ExprStatement.java:67)
                           at com.caucho.quercus.statement.BlockStatement.execute(BlockStatement.java:105)
                           at com.caucho.quercus.statement.TryStatement.execute(TryStatement.java:72)......

I looked at the UnserializeReader.unserialize(...) method and the case statement does not account for 'C' as the leading character of the serialized string. The PHP doc on the Serializable interface (http://php.net/manual/en/class.serializable.php) [^] shows that this is a valid leading character.

The serialized objects were written to disk using PHP 5.3.
Steps To Reproduce
Additional Information
Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
08-28-13 13:22 jpalmisa New Issue


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
26 total queries executed.
24 unique queries executed.
Powered by Mantis Bugtracker