This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 4365 - Software error for an URL with multiple "+" signs together in online Markup Validator
Summary: Software error for an URL with multiple "+" signs together in online Markup V...
Status: RESOLVED FIXED
Alias: None
Product: Validator
Classification: Unclassified
Component: Parser (show other bugs)
Version: HEAD
Hardware: PC Linux
: P2 normal
Target Milestone: 0.8.0
Assignee: Ville Skyttä
QA Contact: qa-dev tracking
URL: http://validator.w3.org/check?uri=htt...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-03-04 22:20 UTC by Fran
Modified: 2007-04-04 04:26 UTC (History)
0 users

See Also:


Attachments

Description Fran 2007-03-04 22:20:30 UTC
Attempting to validate a page with multiple "+' signs in it makes the validator throw an error.

Example:
Validating http://missingno.ifrance.com/C++.php doesn't work.
The software gives the following error message:

"Software error:

Nested quantifiers in regex; marked by <-- HERE in m/^/check?uri=http://missingno.ifrance.com/C++ <-- HERE .php&charset=(detect automatically)&doctype=Inline/ at (eval 18) line 14.

For help, please send mail to the webmaster ([no address given]), giving this error message and the time and date of the error."


Reproducible using the online version of the validator (v0.7.4).
I was unable to reproduce this bug with a local copy of the validator (using v0.7.2 on Linux Ubuntu [Edgy]).
Also, this bug doesn't trigger if the URL contains only one "+".
Validating http://missingno.ifrance.com/C+.php works as expected.

Hope this helps.
Comment 1 Ville Skyttä 2007-03-05 17:11:30 UTC
Ooh, CGI.pm joy again.  What fixed the previous similar report [0] in CGI.pm 3.19 and later seems to have caused this bug in it; the test case URL here works with CGI.pm < 3.19 (only).

[0] http://lists.w3.org/Archives/Public/www-validator/2007Jan/0043.html
Comment 2 Ville Skyttä 2007-03-05 18:10:59 UTC
Reported upstream along with a candidate fix:
http://rt.cpan.org/Public/Bug/Display.html?id=25287
Comment 3 Ville Skyttä 2007-03-12 21:22:55 UTC
This should work around these issues both with CGI.pm < 3.19 and >= 3.19: http://dev.w3.org/cvsweb/validator/httpd/cgi-bin/check.diff?r1=1.432.2.22&r2=1.432.2.23&only_with_tag=validator-0_7-branch&f=h

The workaround does not help with cases where SCRIPT_NAME or PATH_INFO contains problematic characters; those need to be fixed in CGI.pm; see patches in comment 2 and http://rt.cpan.org/Public/Bug/Display.html?id=24479
Comment 4 Olivier Thereaux 2007-03-28 02:22:51 UTC
Ville, thanks for your fix. Wondering how to deal with it from now on, seeing as we are now mostly waiting for the patch to CGI.pm to be accepted. Should we keep this bug open in order to keep tracking the issue, but with a later target milestone? Or should we just close?
Comment 5 Ville Skyttä 2007-04-03 19:04:11 UTC
I think there's not much if anything more to do in the validator code about this, and the workarounds should be effective for all w3.org instances as well as the vast majority of local setups too.  So I think there's no need to wait for CGI.pm to be fixed/patched (that'd be mostly for the w3.org instances) and thus think it's ok to close this one when 0.7.4 is out.

BTW, another test case from the mailing list today:
http://www.arterigere.it/libri/01_collana_++La_Memoria++/
Comment 6 Olivier Thereaux 2007-04-04 00:00:07 UTC
(In reply to comment #5)
> I think there's not much if anything more to do in the validator code about
> this, and the workarounds should be effective for all w3.org instances as well
> as the vast majority of local setups too.  So I think there's no need to wait
> for CGI.pm to be fixed/patched (that'd be mostly for the w3.org instances) and
> thus think it's ok to close this one when 0.7.4 is out.

0.7.4 has been out for 6 months :) but for the rest, agreed.
Comment 7 Olivier Thereaux 2007-04-04 04:26:59 UTC
Setting as Resolved Fixed, since the CVS version behaves as it should.

On a meta-note... Some day I should take the list of Resolved FIXED and CLOSE them if they are indeed fixed in the production version, and use that distinction from there on between resolved (in code) and closed (bug dealt with completely and closed).