Mantis - Quercus
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
3959 | major | always | 03-22-10 14:40 | 03-24-10 17:24 | |
|
|||||
Reporter: | rmann | Platform: | |||
Assigned To: | OS: | ||||
Priority: | normal | OS Version: | |||
Status: | new | Product Version: | 4.0.5 | ||
Product Build: | Resolution: | open | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | |||
|
|||||
Summary: | 0003959: PHP parsing errors | ||||
Description: |
In both resin 4.0.4 and 4.0.5 (and I think 4.0.0), there is a bug in the PHP rendering that either results in a StackOverflowError (4.0.0), or IllegalArgumentException. The stack trace is: [03-22 14:18:06.284] {http://*:80-18} [^] WARNING (com.caucho.server.webapp.ErrorPageManager) java.lang.IllegalArgumentException [03-22 14:18:06.284] {http://*:80-18} [^] at java.lang.Character.toChars(Character.java:2584) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStringToken(QuercusParser.java:4757) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStringToken(QuercusParser.java:4738) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseToken(QuercusParser.java:4113) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseUnary(QuercusParser.java:3072) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAssignExpr(QuercusParser.java:2911) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseMulExpr(QuercusParser.java:2883) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAddExpr(QuercusParser.java:2855) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseShiftExpr(QuercusParser.java:2830) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseCmpExpr(QuercusParser.java:2791) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseEqExpr(QuercusParser.java:2762) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitAndExpr(QuercusParser.java:2740) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitXorExpr(QuercusParser.java:2718) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitOrExpr(QuercusParser.java:2696) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAndExpr(QuercusParser.java:2681) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseOrExpr(QuercusParser.java:2652) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseConditionalExpr(QuercusParser.java:2618) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakAndExpr(QuercusParser.java:2596) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakXorExpr(QuercusParser.java:2574) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakOrExpr(QuercusParser.java:2552) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseExpr(QuercusParser.java:2543) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseIf(QuercusParser.java:1160) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:683) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatement(QuercusParser.java:817) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseIf(QuercusParser.java:1174) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:683) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseSwitch(QuercusParser.java:1305) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:687) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseTop(QuercusParser.java:577) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parse(QuercusParser.java:478) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parse(QuercusParser.java:331) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.page.PageManager.parse(PageManager.java:256) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.page.PageManager.parse(PageManager.java:213) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.QuercusContext.parse(QuercusContext.java:1109) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:139) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:610) [03-22 14:18:06.284] {http://*:80-18} [^] at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:775) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.dispatchRequest(TcpConnection.java:600) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.handleRequestsImpl(TcpConnection.java:566) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.handleRequests(TcpConnection.java:519) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$AcceptTask.doTask(TcpConnection.java:1100) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$ConnectionReadTask.runThread(TcpConnection.java:1037) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$AcceptTask.run(TcpConnection.java:1068) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) The PHP code that causes this is in WordPress 2.9.2, when attempting to save General Settings. The code that fails is wp_includes/plugin.php:336: do { foreach ( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_['function']) ) call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); } while ( next($wp_filter[$tag]) !== false ); It's actually the while clause that causes the failure, something in the !== comparison. |
||||
Steps To Reproduce: | |||||
Additional Information: | |||||
Relationships | |||||
Attached Files: |
There are no notes attached to this issue. |