Closed Bug 191020 Opened 22 years ago Closed 22 years ago

buglist.cgi doesn't always get query names right for filename to save

Categories

(Bugzilla :: Query/Bug List, defect)

2.17.3
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Bugzilla 2.18

People

(Reporter: gerv, Assigned: gerv)

Details

Attachments

(1 file, 1 obsolete file)

buglist.cgi works out the filename to put in the Content-Disposition header
using the old style of params to buglist.cgi, and before we do the old->new
conversion. It needs to move after that bit of code, and it'll start working again.

There's also a missing /g on the whitespace-removal regexp. I don't know how
serious a problem that is - the comment says it'll let people mess with the HTTP
headers. CCing justdave and bbaetz for an assessment.

Gerv
Attached patch Patch v.1 (obsolete) — Splinter Review
Here's the fix.

Gerv
The /g is because of \r\n, but I think we input test that anyway. We should
probably s/\s/_/g instead

I don't follow why this has to be moved, though - that code doesn't use the
params (or teh CGI) object.
The code needs to come after this code:
http://lxr.mozilla.org/mozilla/source/webtools/bugzilla/buglist.cgi#234

Currently, we use 
$::FORM{'cmdtype'} = "dorem" && $::FORM{'remaction'} = "run"
from query.cgi to indicate a named query. The current generate-a-name code
checks only for $::FORM{'cmdtype'} eq 'runnamed', the old interface, and so will
only work with stored queries created before the change.

So, we need to make it look for the new form values (dorem and run), and then
move it after the code where the old form values are changed to the new form
values (line 234).

Gerv
Comment on attachment 112910 [details] [diff] [review]
Patch v.1

Oh, that backwards code. I thought you were talking about the CGI stuff.

Anyway, I'll review this if you s// it to _ instead of nothing. Thats sort of
an established convention.

Quoting the name so that we can include spaces directly (and filtering out
\r\n) can be a different bug, if anyone feels its worth it.

Mopre importantly (and the reason I'm minusing this) is the fact the 
$::FORM{'cmdtype'} ||= "" needs to be done earlier, else you'll get uninited
var warnings when we try to do the compat code conversion.
Attachment #112910 - Flags: review-
Attached patch Patch v.2Splinter Review
How's this?

Gerv
Attachment #112910 - Attachment is obsolete: true
Attachment #113357 - Flags: review?(bbaetz)
Comment on attachment 113357 [details] [diff] [review]
Patch v.2

r=bbaetz, assuming you tested/etc
Attachment #113357 - Flags: review?(bbaetz) → review+
Requesting approval.

BTW, bbaetz: is the whitespace thing actually a security hole, or can we remove
that designation?

Gerv
Flags: approval?
I'm going to hold off on approval till I know for sure if this is a security
thing or not.  Now that we have this nifty approval thing we can sit on it and
check it in when we're ready to release the advisory so it doesn't show up in
the cvs logs on bosai before we release it if it needs to have an advisory.

Whitespace in itself won't mess with HTTP headers, but linefeeds will (which
might be nailed by the whitespace removal).
Gerv: We trim on entry, but don't strip out newlines, so it may be. Although
since you can only affect your own queries, I don't think it lets you do
anything more than insert headers/content into your own browser.
Lucky we found it before implementing any form of query sharing, then :-)

Making non-confidential - the only person you can hack here is yourself.

Gerv
Group: webtools-security
and approved.  check it in.
Flags: approval? → approval+
Target Milestone: --- → Bugzilla 2.18
Fixed.

Checking in buglist.cgi;
/cvsroot/mozilla/webtools/bugzilla/buglist.cgi,v  <--  buglist.cgi
new revision: 1.220; previous revision: 1.219
done

Gerv
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
QA Contact: matty_is_a_geek → default-qa
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: