From: Brian McCallister Date: 2003-10-31T04:09:30+09:00 Subject: Re: Rublog Problems The full patch: ----------------------------------- --- Request.rb Thu Oct 30 10:54:00 2003 +++ ../foo/rublog-0.8.0/Request.rb Thu Mar 20 21:45:28 2003 @@ -147,9 +147,8 @@ request_path = "" path = @environment['PATH_INFO'] if path && path !~ /\.\./ - foo = String.new(path) - foo.slice!(0) if foo[0] == ?/ - request_path = foo unless path.empty? + path.slice!(0) if path[0] == ?/ + request_path = path unless path.empty? end @is_rss = request_path.sub!(/index.rss$/, '') || @parameters.has_key?('rss') @@ -242,7 +241,7 @@ @cgi = cgi end def [](key) - @cgi.params[key][0] + @cgi[key][0] end def has_key?(key) @cgi.has_key?(key) --------------------------------------------------- also fixes a recurring error message in the http log: ./Request.rb:245:in `[]':CAUTION! cgi['key'] == cgi.params['key'][0]; if want Array, use cgi.params['key'], referer: http://kasparov.skife.org/rublog-0.8.0/rublog.cgi/ -Brian On Thursday, October 30, 2003, at 01:49 PM, Brian McCallister wrote: > > > Entertainingly enough, the frozen string was it, the following patch > solved the problem: > > --- Request.rb Thu Mar 20 21:45:28 2003 > +++ ../../rublog-0.8.0/Request.rb Thu Oct 30 10:45:46 2003 > @@ -147,8 +147,9 @@ > request_path = "" > path = @environment['PATH_INFO'] > if path && path !~ /\.\./ > - path.slice!(0) if path[0] == ?/ > - request_path = path unless path.empty? > + foo = String.new(path) > + foo.slice!(0) if foo[0] == ?/ > + request_path = foo unless path.empty? > end > > @is_rss = request_path.sub!(/index.rss$/, '') || > @parameters.has_key?('rss') > > Now, to figure out how to unfreeze said String. > > -Brian > > On Thursday, October 30, 2003, at 01:29 PM, Brian McCallister wrote: > >> >> >> I have mod_ruby installed but am running it under cgi at the moment -- >> I want to run under mod_ruby eventually, but make it work, then work >> right, then work fast =) >> >> Completely disabling mod_ruby makes no change >> >> Forcing it to run under mod_ruby gives me a security error: >> >> ./FileEntries.rb:85:in `stat': Insecure operation - stat >> (SecurityError) >> from ./FileEntries.rb:85:in `traverse' >> from ./FileEntries.rb:84:in `each' >> from ./FileEntries.rb:84:in `traverse' >> from ./FileEntries.rb:52:in `initialize' >> from ./RubLog.rb:81:in `new' >> from ./RubLog.rb:81:in `process_request' >> from ./RubLog.rb:66:in `initialize' >> from /home/mccallister/www/rublog-0.8.0/rublog.rb:33:in `new' >> from /home/mccallister/www/rublog-0.8.0/rublog.rb:33 >> from /usr/local/lib/ruby/1.8/apache/ruby-run.rb:70:in `load' >> from /usr/local/lib/ruby/1.8/apache/ruby-run.rb:70:in >> `handler' >> >> Running it as a normal cgi I get the previously mentioned error. The >> "can't modify frozen string (TypeError)" is why I thought that maybe >> something changed between 1.6 and 1.8. >> >> httpd cgi config is pretty vanilla: >> >> LoadModule cgi_module modules/mod_cgi.so >> AddHandler cgi-script .cgi >> >> Aside from that it is httpd 2.0.48 prefork and 1.8.0 release with >> nothing extra aside from eruby installed. >> >> -Brian >> >> On Thursday, October 30, 2003, at 12:00 PM, Chad Fowler wrote: >> >>> On Fri, 31 Oct 2003, Brian McCallister wrote: >>> >>> # As Dave doesn't have a -users list for Rublog I am asking here, >>> sorry >>> # if it is offtopic... >>> # >>> # I am having a bear of a time getting rublog to work under 1.8.0 I >>> get >>> # errors along the lines of: >>> # >>> >>> No problems here under 1.8.0. Have you tried it with Webrick? I'd >>> be >>> interested to know if it works there. What's your web server config? >>> mod_ruby? >>> >>> Chad >>> >>> >>> >> >> >> >> -----BEGIN PGP SIGNATURE----- >> Version: GnuPG v1.2.3 (Darwin) >> >> iD8DBQE/oViTaOuMdvjqKWcRAtlpAJ44TmxkqGKRESxDe7JSfP64TX80vQCdH+g/ >> 2+bXBrTZof26TZoPLmCm88I= >> =psQR >> -----END PGP SIGNATURE----- >> >> >> > > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.2.3 (Darwin) > > iD8DBQE/oV0haOuMdvjqKWcRAmmSAJ9p6LKRdFK/yg3MpyBgcLA1d3XFcQCghedJ > 6m1MEq6wMBjw5VcrCkmPElI= > =SDqR > -----END PGP SIGNATURE----- > > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (Darwin) iD8DBQE/oWHpaOuMdvjqKWcRAifZAKCZKOi2TLSugv863rrVshhoUDeGjwCfawwX zllGJ9HIJSMOcP+ZuOZAb8I= =r0gE -----END PGP SIGNATURE-----