[#4522] Undefined Errno::EPROTO and the like raises NameError — "Florian Frank" <flori@...>
Hi,
[#4533] giving acces readline to rl_line_buffer — "Cs. Henk" <csaba-ml@...>
Hi!
[#4548] Ruby 1.8.2 array of hash entries functions incorrectly — noreply@...
Bugs item #1613, was opened at 2005-03-09 19:49
[#4561] rb_reg_quote weirdness — Nikolai Weibull <mailing-lists.ruby-core@...>
(Two weirdnesses in one day.)
Hi,
[#4567] Immutable Ropes — Nikolai Weibull <mailing-lists.ruby-core@...>
Note how I didn't write "Immutable Strings" in the subject.
[#4575] Allowing "?" in struct members — "Berger, Daniel" <Daniel.Berger@...>
Hi all,
[#4587] 0**0==1? — Bertram Scharpf <lists@...>
Hi,
[#4595] New block syntax — Daniel Amelang <daniel.amelang@...>
I'm really sorry if this isn't the place to talk about this. I've
Daniel Amelang wrote:
Hi --
On Monday 21 March 2005 16:17, David A. Black wrote:
Hi --
Hey David, I think that we've had some misunderstandings due to
Hi --
On Wednesday 30 March 2005 20:55, David A. Black wrote:
On Sunday 20 March 2005 21:31, Daniel Amelang wrote:
[#4601] Re: New block syntax — "Berger, Daniel" <Daniel.Berger@...>
> -----Original Message-----
[#4611] want_object? - possible? — "Berger, Daniel" <Daniel.Berger@...>
Hi all,
[#4619] Re: want_object? - possible? — Daniel Berger <djberg96@...>
--- nobu.nokada@softhome.net wrote:
Hi --
On 3/24/05, David A. Black <dblack@wobblini.net> wrote:
Hi --
On 4/14/05, David A. Black <dblack@wobblini.net> wrote:
On 14 Apr 2005, at 22:20, Mark Hubbart wrote:
On 4/15/05, Eric Hodel <drbrain@segment7.net> wrote:
[#4622] tempfile.rb — Tilman Sauerbeck <tilman@...>
Hi,
[#4648] about REXML::Encoding — speakillof <speakillof@...>
Hi.
On Thursday 31 March 2005 09:44, speakillof wrote:
Hi.
I've tested, applied, and committed your Encoding patch, Nobu.
Hi,
Patch for denial of service vulnerability in WEBrick
We built a service using WEBrick with SSL enabled, and in the process
of testing found a denial of service vulnerability in WEBrick. If
connections are terminated during the SSL handsake, an exception is
raised that is not properly handled in webrick/server.rb. The result
is that there is a leak in the token queue used to limit the number of
threads created to handle connections. When the queue leaked to empty,
the server sits in the IO::select loop trying to pop a token from the
queue, but won't block because there is only the single thread
running. The server becomes unavailable, and it creates a nice big log
file too (500MB in a minute or two)
;>
Here is a patch for 1.8.2 that fixes this and a related leak:
*** server.rb.old Sat Mar 5 03:46:33 2005
--- server.rb Sat Mar 5 03:52:12 2005
***************
*** 99,110 ****
--- 99,116 ----
rescue Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPROTO
=> ex
# TCP connection was established but RST segment was sent
# from peer before calling TCPServer#accept.
+ # This could cause a leak in the token queue since a token
+ # was popped between the select and accept, so we push one
+ @tokens.push(nil)
rescue Errno::EBADF, IOError => ex
# if the listening socket was closed in
GenericServer#shutdown,
# IO::select raise it.
rescue Exception => ex
+ # if using SSL, a failed accept will raise an exception
that is
+ # caught here, so we need to push a token to avoid a leak
msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}"
@logger.error msg
+ @tokens.push(nil)
end
end
***************
*** 168,175 ****
@logger.debug "close: <address unknown>"
end
sock.close
end
- @tokens.push(nil)
}
end
--- 174,182 ----
@logger.debug "close: <address unknown>"
end
sock.close
+ # move push inside ensure clause
+ @tokens.push(nil)
end
}
end