Author: nickpj
Description:
Limit test case:
curl --silent --include --globoff -F 'namespace'='-1' -F 'limit'='-1' -F 'offset'='1' 'http://localhost/wiki/index.php?title=Special:Newpages'
Offset test case:
curl --silent --include --globoff -F 'namespace'='-1' -F 'limit'='1' -F 'offset'='-1' 'http://localhost/wiki/index.php?title=Special:Newpages'
Example test case output, with showing error details enabled:
HTTP/1.1 100 Continue
HTTP/1.1 500 Internal Server Error
Date: Wed, 19 Dec 2007 06:13:57 GMT
Server: Apache
Cache-control: none
Pragma: nocache
Vary: Accept-Encoding,User-Agent
Content-Length: 1141
Connection: close
Content-Type: text/html; charset=utf-8
<html>
<head> <title>Database error</title> </head> <body> <h1><img src='/wiki/skins/common/images/wiki.png' style='float:left;margin-right:1em' alt=''>Database error</h1> A database query syntax error has occurred.
This may indicate a bug in the software.
The last attempted database query was:
<blockquote><tt> SELECT 'Newpages' as type,
rc_namespace AS namespace, rc_title AS title, rc_cur_id AS cur_id, rc_user AS "user", rc_user_text AS user_text, rc_comment as "comment", rc_timestamp AS timestamp, rc_timestamp AS value, '1' as usepatrol, rc_patrolled AS patrolled, rc_id AS rcid, page_len as length, page_latest as rev_id FROM `recentchanges`,`page` WHERE rc_cur_id=page_id AND rc_new = '1' AND rc_namespace = '-1' AND page_is_redirect = '0' ORDER BY value DESC LIMIT -1,1 </tt></blockquote>
from within function "<tt></tt>".
MySQL returned error "<tt>1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1,1' at line 16 (localhost)</tt>".</body></html>
SVN ref: r28524. Prior to this was using: "list( $limit, $offset ) = wfCheckLimits();", and wfCheckLimits() has a check for negative values. Probably either use this function, or add abs() in appropriate locations.
Version: 1.12.x
Severity: minor