haproxy/src
Willy Tarreau eaed5a1d46 [BUG] backend: L7 hashing must not be performed on incomplete requests
Isidore Li reported an occasional segfault when using URL hashing, and
kindly provided backtraces and core files to help debugging.

The problem was triggered by reset connections before the URL was sent,
and was due to the same bug which was fixed by commit e45997661b
(connections were attempted in case of connection abort). While that
bug was already fixed, it appeared that the same segfault could be
triggered when URL hashing is configured in an HTTP backend when the
frontend runs in TCP mode and no URL was seen. It is totally abnormal
to try to hash a null URL, as well as to process any kind of L7 hashing
when a full request was not seen.

This additional fix now ensures that layer7 hashing is not performed on
incomplete requests.
2010-03-25 06:32:52 +01:00
..
acl.c [BUG] don't merge anonymous ACLs ! 2010-03-15 16:13:29 +01:00
appsession.c [MINOR] task: keep a task count and clean up task creators 2009-03-21 18:13:21 +01:00
auth.c [BUILD] fix platform-dependant build issues related to crypt() 2010-03-04 19:10:14 +01:00
backend.c [BUG] backend: L7 hashing must not be performed on incomplete requests 2010-03-25 06:32:52 +01:00
base64.c [MINOR] Base64 decode 2010-01-31 19:14:07 +01:00
buffers.c [BUILD] fix some build warnings on Solaris with is* macros 2010-03-03 00:16:00 +01:00
cfgparse.c [OPTIM] config: only allocate check buffer when checks are enabled 2010-03-17 22:05:23 +01:00
checks.c [BUG] checks: don't wait for a close to start parsing the response 2010-03-17 21:52:07 +01:00
client.c [MINOR] add the ability to force kernel socket buffer size. 2010-01-22 11:49:41 +01:00
cttproxy.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
dumpstats.c [CLEANUP] stats: remove printf format warning in stats_dump_full_sess_to_buffer() 2010-03-21 23:21:00 +01:00
ev_epoll.c [BUG] O(1) pollers should check their FD before closing it 2009-05-10 10:18:54 +02:00
ev_kqueue.c [BUG] O(1) pollers should check their FD before closing it 2009-05-10 10:18:54 +02:00
ev_poll.c [MEDIUM] pollers: don't wait if a signal is pending 2009-05-10 09:57:21 +02:00
ev_select.c [MEDIUM] pollers: don't wait if a signal is pending 2009-05-10 09:57:21 +02:00
ev_sepoll.c [MEDIUM] fd: merge fd_list into fdtab 2009-10-18 08:20:26 +02:00
fd.c [OPTIM] move some rarely used fields out of fdtab 2009-10-18 08:17:33 +02:00
freq_ctr.c [OPTIM] freq_ctr: do not rotate the counters when reading 2009-03-06 14:29:25 +01:00
haproxy.c [BUG] init: unconditionally catch SIGPIPE 2010-03-17 18:02:46 +01:00
hdr_idx.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
lb_chash.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwlc.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.c [BUG] url_param hash may return a down server 2010-03-12 06:22:16 +01:00
log.c [CLEANUP] remove ifdef MSG_NOSIGNAL and define it instead 2009-08-19 11:25:08 +02:00
memory.c [MEDIUM] ensure we don't recursively call pool_gc2() 2009-04-21 02:17:45 +02:00
pattern.c [CLEANUP] acl, patterns: make use of my_strndup() instead of malloc+memcpy 2010-01-26 19:02:46 +01:00
pipe.c [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
proto_http.c [BUG] http: fix truncated responses on chunk encoding when size divides buffer size 2010-03-17 15:54:24 +01:00
proto_tcp.c [CLEANUP] config: use build_acl_cond() instead of parse_acl_cond() 2010-01-28 17:12:36 +01:00
proto_uxst.c [DOC] Some more documentation cleanups 2010-03-12 06:46:06 +01:00
protocols.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
proxy.c [MINOR] report total number of processed connections when stopping a proxy 2010-03-04 23:07:28 +01:00
queue.c [OPTIM] counters: move some max numbers to the counters struct 2009-10-04 23:26:19 +02:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c [MINOR] prepare req_*/rsp_* to receive a condition 2010-01-28 18:10:50 +01:00
server.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
session.c [MEDIUM] session: better fix for connection to servers with closed input 2010-03-21 23:31:42 +01:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
signal.c [BUILD] fix a minor build warning on AIX 2009-07-26 17:32:11 +02:00
standard.c [BUILD] fix some build warnings on Solaris with is* macros 2010-03-03 00:16:00 +01:00
stick_table.c [MEDIUM] Add stick table (persistence) management functions and types 2010-01-12 11:23:15 +01:00
stream_interface.c [BUG] stream_interface: fix retnclose and remove cond_close 2010-01-10 10:21:21 +01:00
stream_sock.c [OPTIM] stream_sock: don't shutdown(write) when the socket is in error 2010-01-16 10:03:45 +01:00
task.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
time.c [MINOR] add curr_sec_ms and curr_sec_ms_scaled for current second. 2009-03-05 16:56:16 +01:00
uri_auth.c [MAJOR] use the new auth framework for http stats 2010-01-31 19:14:09 +01:00