haproxy/include/proto
Willy Tarreau b1a2faf7c9 BUG/CRITICAL: log: fix risk of crash in development snapshot
Commit a1cc38 introduced a regression which was easy to trigger till ad4cd58
(snapshots 20120222 to 20120311 included). The bug was still present after
that but harder to trigger.

The bug is caused by the use of two distinct log buffers due to intermediary
changes. The issue happens when an HTTP request is logged just after a TCP
request during the same second and the HTTP request is too large for the buffer.
In this case, it happens that the HTTP request is logged into the TCP buffer
instead and that length controls can't detect anything.

Starting with bddd4f, the issue is still possible when logging too large an
HTTP request just after a send_log() call (typically a server status change).

We owe a big thanks to Sander Klein for testing several snapshots and more
specifically for taking significant risks in production by letting the buggy
version crash several times in order to provide an exploitable core ! The bug
could not have been found without this precious help. Thank you Sander !

This fix does not need to be backported, it did not affect any released version.
2012-03-19 17:09:30 +01:00
..
acl.h MINOR: acl: include pattern.h to make pattern migration more transparent 2011-12-30 17:33:25 +01:00
auth.h [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00
backend.h BUG/MEDIUM: correctly disable servers tracking another disabled servers. 2012-01-20 16:18:30 +01:00
buffers.h MINOR: buffer: switch a number of buffer args to const 2012-03-10 08:55:07 +01:00
checks.h [MEDIUM] add a maintenance mode to servers 2010-01-31 23:33:18 +01:00
cttproxy.h [MEDIUM] check for cttproxy support when required 2007-03-24 17:24:39 +01:00
dumpstats.h [MINOR] More flexible clearing of stick table 2011-06-17 11:39:29 +02:00
fd.h [MEDIUM] Fix memory freeing at exit 2008-05-30 07:07:19 +02:00
freq_ctr.h [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.h [MINOR] frontend: add a make_proxy_line function 2011-03-20 10:15:22 +01:00
hdr_idx.h OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
lb_chash.h [MEDIUM] backend: implement consistent hashing variation 2009-10-09 07:17:58 +02:00
lb_fas.h MEDIUM: backend: add the 'first' balancing algorithm 2012-02-21 22:27:27 +01:00
lb_fwlc.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_fwrr.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_map.h [MINOR] lb_map: reorder code in order to ease integration of new hash functions 2009-10-01 21:11:15 +02:00
log.h BUG/CRITICAL: log: fix risk of crash in development snapshot 2012-03-19 17:09:30 +01:00
pattern.h MINOR: pattern: export the global temporary pattern 2011-12-30 17:33:25 +01:00
peers.h [CLEANUP] peers.h: fix declarations 2011-06-18 20:27:19 +02:00
pipe.h [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
port_range.h [MEDIUM] add support for binding to source port ranges during connect 2009-06-10 12:23:32 +02:00
proto_http.h MEDIUM: http: add support for sending the server's name in the outgoing request 2012-01-05 15:17:31 +01:00
proto_tcp.h MINOR: remove the client/server side distinction in SI addresses 2011-09-23 10:54:59 +02:00
proto_uxst.h [MEDIUM] separate protocol-level accept() from the frontend's 2010-06-14 10:53:11 +02:00
protocols.h [MINOR] listeners: add support for queueing resource limited listeners 2011-07-24 22:03:52 +02:00
proxy.h [MEDIUM] stats: add the ability to enable/disable/shutdown a frontend at runtime 2011-09-07 22:50:52 +02:00
queue.h BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend 2012-01-20 16:18:53 +01:00
server.h [OPTIM] counters: move some max numbers to the counters struct 2009-10-04 23:26:19 +02:00
session.h [MEDIUM] session: make session_shutdown() an independant function 2011-09-07 23:01:56 +02:00
signal.h [MEDIUM] signals: support redistribution of signal zero when stopping 2010-08-27 18:26:11 +02:00
stick_table.h [MEDIUM] Create updates tree on stick table to manage sync. 2010-11-11 09:29:08 +01:00
stream_interface.h [MAJOR] session: remove the ->srv pointer from struct session 2011-03-10 23:32:17 +01:00
stream_sock.h [MEDIUM] backend: initialize the server stream_interface upon connect() 2010-06-14 10:53:15 +02:00
task.h [MAJOR] proxy: finally get rid of maintain_proxies() 2011-07-25 16:33:49 +02:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00