diff options
author | Eric Wong <e@80x24.org> | 2016-07-05 06:58:41 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2016-07-05 13:40:59 +0000 |
commit | 360f0d40d5cd35304cb01d1db33d1458af491b10 (patch) | |
tree | c89249e59a4093b8db21b48d9af036795e3c7776 | |
parent | 148251ee69d1613213e9a87c2fd81d4f7c0cc16b (diff) | |
download | yahns-360f0d40d5cd35304cb01d1db33d1458af491b10.tar.gz |
proxy_unbuffer is vulnerable to the same race condition we avoided in commit 5328992829b2 ("proxy_pass: fix race condition due to flawed hijack check")
-rw-r--r-- | lib/yahns/proxy_http_response.rb | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/yahns/proxy_http_response.rb b/lib/yahns/proxy_http_response.rb index 0ca2c34..a37b387 100644 --- a/lib/yahns/proxy_http_response.rb +++ b/lib/yahns/proxy_http_response.rb @@ -13,10 +13,8 @@ module Yahns::HttpResponse # :nodoc: def proxy_unbuffer(wbuf, nxt = :ignore) @state = wbuf wbuf.req_res = nil if nxt.nil? && wbuf.respond_to?(:req_res=) - tc = Thread.current - tc[:yahns_fdmap].remember(self) # Yahns::HttpClient - tc[:yahns_queue].queue_mod(self, wbuf.busy == :wait_readable ? - Yahns::Queue::QEV_RD : Yahns::Queue::QEV_WR) + proxy_wait_next(wbuf.busy == :wait_readable ? Yahns::Queue::QEV_RD : + Yahns::Queue::QEV_WR) nxt end |