haproxy/src
Christopher Faulet 1703478e2d BUG/MINOR: h1: Report the right error position when a header value is invalid
During H1 messages parsing, when the parser has finished to parse a full header
line, some tests are performed on its value, depending on its name, to be sure
it is valid. The content-length is checked and converted in integer and the host
header is also checked. If an error occurred during this step, the error
position must point on the header value. But from the parser point of view, we
are already on the start of the next header. Thus the effective reported
position in the error capture is the beginning of the unparsed header line. It
is a bit confusing when we try to figure out why a message is rejected.

Now, the parser state is updated to point on the invalid value. This way, the
error position really points on the right position.

This patch must be backported as far as 1.9.
2020-01-06 13:58:21 +01:00
..
51d.c REORG: proto_htx: Move HTX analyzers & co to http_ana.{c,h} files 2019-07-19 09:24:12 +02:00
acl.c BUG/MINOR: acl: Fix memory leaks when an ACL expression is parsed 2019-09-13 10:08:44 +02:00
action.c BUG/MEDIUM: stick-table: Wrong stick-table backends parsing. 2019-08-07 10:32:31 +02:00
activity.c CLEANUP: cli: replace all occurrences of manual handling of return messages 2019-08-09 11:26:10 +02:00
applet.c BUG/MEDIUM: applet: always check a fast running applet's activity before killing 2019-10-11 16:05:57 +02:00
arg.c MEDIUM: tools: improve time format error detection 2019-06-07 19:32:02 +02:00
auth.c BUILD/MINOR: auth: enabling for osx 2019-09-08 12:20:13 +02:00
backend.c BUG/MEDIUM: connections: Hold the lock when wanting to kill a connection. 2019-12-30 18:18:28 +01:00
base64.c BUG/MINOR: base64: dec func ignores padding for output size checking 2019-01-14 19:32:15 +01:00
buffer.c MEDIUM: memory: use pool_destroy_all() to destroy all pools on deinit() 2018-11-26 19:50:32 +01:00
cache.c MINOR: chunk: add chunk_istcat() to concatenate an ist after a chunk 2019-10-29 13:09:14 +01:00
calltrace.c REORG: trace: rename trace.c to calltrace.c and mention it's not thread-safe 2019-08-22 20:21:00 +02:00
cfgparse-global.c MEDIUM: init: set NO_NEW_PRIVS by default when supported 2019-12-06 17:20:26 +01:00
cfgparse-listen.c MINOR: http: add a new "replace-path" action 2019-12-19 09:24:57 +01:00
cfgparse.c MEDIUM: init: prevent process and thread creation at runtime 2019-12-03 11:49:00 +01:00
channel.c MINOR: channel: Add the function channel_add_input 2019-01-02 20:12:44 +01:00
checks.c BUG/MEDIUM: checks: Only attempt to do handshakes if the connection is ready. 2019-12-30 15:18:16 +01:00
chunk.c Revert "MINOR: chunks: Make sure trash_size is only set once." 2019-06-07 15:37:47 +02:00
cli.c MINOR: listener: split dequeue_all_listener() in two 2019-12-10 14:14:09 +01:00
compression.c MINOR: time: move the cpu, mono, and idle time to thread_info 2019-05-20 21:14:14 +02:00
connection.c CLEANUP: connection: merge CO_FL_NOTIFY_DATA and CO_FL_NOTIFY_DONE 2019-12-27 16:38:47 +01:00
da.c REORG: proto_htx: Move HTX analyzers & co to http_ana.{c,h} files 2019-07-19 09:24:12 +02:00
debug.c MINOR: debug: replace popen() with pipe+fork() in "debug dev exec" 2019-12-06 17:20:26 +01:00
dict.c BUG/MINOR: dict: race condition fix when inserting dictionary entries. 2019-06-11 09:54:12 +02:00
dns.c BUG/MAJOR: dns: add minimalist error processing on the Rx path 2019-12-10 19:09:15 +01:00
ev_epoll.c OPTIM: epoll: always poll for recv if neither active nor ready 2019-12-27 16:38:47 +01:00
ev_evports.c MINOR: pollers: add a new flag to indicate pollers reporting ERR & HUP 2019-12-27 14:04:33 +01:00
ev_kqueue.c MINOR: pollers: add a new flag to indicate pollers reporting ERR & HUP 2019-12-27 14:04:33 +01:00
ev_poll.c MINOR: pollers: add a new flag to indicate pollers reporting ERR & HUP 2019-12-27 14:04:33 +01:00
ev_select.c MEDIUM: fd: do not use the FD_POLL_* flags in the pollers anymore 2019-09-06 19:09:56 +02:00
fcgi-app.c BUG/MINOR: fcgi-app: Make the directive pass-header case insensitive 2019-12-02 10:38:52 +01:00
fcgi.c MINOR: fcgi: Add code related to FCGI protocol 2019-09-17 10:18:54 +02:00
fd.c BUG/MEDIUM: fd/threads: fix a concurrency issue between add and rm on the same fd 2019-12-20 08:09:28 +01:00
filters.c MEDIUM: filters: Adapt filters API to allow again TCP filtering on HTX streams 2019-11-15 13:43:08 +01:00
flt_http_comp.c MEDIUM: fcgi-app: Add FCGI application and filter 2019-09-17 10:18:54 +02:00
flt_spoe.c BUG/MINOR: spoe: fix off-by-one length in UUID format string 2019-10-29 10:33:13 +01:00
flt_trace.c MEDIUM: filters: Adapt filters API to allow again TCP filtering on HTX streams 2019-11-15 13:43:08 +01:00
freq_ctr.c BUG/MAJOR: threads/freq_ctr: use a memory barrier to detect changes 2017-10-31 18:01:18 +01:00
frontend.c MINOR: frontend: switch from conn->addr.{from,to} to conn->{src,dst} 2019-07-19 13:50:09 +02:00
h1.c BUG/MINOR: h1: Report the right error position when a header value is invalid 2020-01-06 13:58:21 +01:00
h1_htx.c MEDIUM: h1-htx: Add HTX EOM block when the message is in H1_MSG_DONE state 2019-12-11 16:46:16 +01:00
h2.c BUG/MAJOR: h2: make header field name filtering stronger 2019-11-25 11:11:32 +01:00
haproxy.c BUILD/MINOR: unix sockets: silence an absurd gcc warning about strncpy() 2019-12-11 16:29:10 +01:00
hash.c MINOR: hash: add new function hash_crc32c 2018-03-21 05:04:01 +01:00
hathreads.c BUILD/MEDIUM: threads: rename thread_info struct to ha_thread_info 2019-10-17 07:15:17 +02:00
hlua.c BUILD: debug: Avoid warnings in dev mode with -02 because of some BUG_ON tests 2019-11-20 14:11:47 +01:00
hlua_fcn.c MINOR: stats: prepare to add a description with each stat/info field 2019-10-10 11:30:07 +02:00
hpack-dec.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-enc.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-huff.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-tbl.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
http.c MINOR: http: Add a function to get the authority into a URI 2019-10-09 11:05:31 +02:00
http_acl.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_act.c MINOR: http: add a new "replace-path" action 2019-12-19 09:24:57 +01:00
http_ana.c BUG/MINOR: http-ana: Properly catch aborts during the payload forwarding 2019-11-20 14:11:47 +01:00
http_conv.c MINOR: sample: add us/ms support to date/http_date 2019-10-31 08:47:31 +01:00
http_fetch.c CLEANUP: h1-htx: Move htx-to-h1 formatting functions from htx.c to h1_htx.c 2019-10-14 22:28:50 +02:00
http_htx.c MINOR: http-htx: Add some htx sample fetches for debugging purpose 2019-12-11 16:46:16 +01:00
http_rules.c REORG: proto_htx: Move HTX analyzers & co to http_ana.{c,h} files 2019-07-19 09:24:12 +02:00
htx.c CLEANUP: h1-htx: Move htx-to-h1 formatting functions from htx.c to h1_htx.c 2019-10-14 22:28:50 +02:00
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c BUG/MEDIUM: lb-chash: Ensure the tree integrity when server weight is increased 2019-08-01 11:35:29 +02:00
lb_fas.c BUG/MEDIUM: lb_fas: Don't test the server's lb_tree from outside the lock 2019-07-05 14:26:15 +02:00
lb_fwlc.c BUG/MINOR: lb/leastconn: ignore the server weights for empty servers 2019-09-06 17:13:44 +02:00
lb_fwrr.c BUG/MAJOR: lb/threads: make sure the avoided server is not full on second pass 2019-05-27 10:29:59 +02:00
lb_map.c MEDIUM: lb/threads: Use the new _HA_ATOMIC_* macros. 2019-03-11 17:02:38 +01:00
listener.c BUG/MINOR: listener: do not immediately resume on transient error 2019-12-11 15:06:30 +01:00
log.c BUG/MINOR: log: fix minor resource leaks on logformat error path 2019-12-11 12:05:39 +01:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c MEDIUM: Add parsing of mailers section 2015-02-03 00:24:16 +01:00
map.c CLEANUP: cli: replace all occurrences of manual handling of return messages 2019-08-09 11:26:10 +02:00
memory.c MINOR: pools: always pre-initialize allocated memory outside of the lock 2019-07-09 10:40:33 +02:00
mux_fcgi.c MEDIUM: h1-htx: Add HTX EOM block when the message is in H1_MSG_DONE state 2019-12-11 16:46:16 +01:00
mux_h1.c BUG/MAJOR: mux-h1: Don't pretend the input channel's buffer is full if empty 2019-12-20 18:09:19 +01:00
mux_h2.c MINOR: mux-h2/trace: report the connection and/or stream error code 2019-11-25 11:34:26 +01:00
mux_pt.c MINOR: mux: Add a new method to get informations about a mux. 2019-10-29 14:15:20 +01:00
mworker-prog.c MEDIUM: mworker-prog: Add user/group options to program section 2019-07-15 16:43:16 +02:00
mworker.c BUG/MINOR: mworker: properly pass SIGTTOU/SIGTTIN to workers 2019-12-11 14:26:53 +01:00
namespace.c BUG/MEDIUM: namespace: close open namespaces during soft shutdown 2019-09-25 23:33:52 +02:00
pattern.c BUG/MEDIUM: pattern: make the pattern LRU cache thread-local and lockless 2019-10-23 07:27:25 +02:00
payload.c REORG: proto_htx: Move HTX analyzers & co to http_ana.{c,h} files 2019-07-19 09:24:12 +02:00
peers.c BUG/MINOR: peers: "peer alive" flag not reset when deconnecting. 2019-11-20 13:38:13 +01:00
pipe.c BUILD: address a few cases of "static <type> inline foo()" 2019-04-15 21:55:48 +02:00
proto_sockpair.c BUG/MEDIUM: protocols: add a global lock for the init/deinit stuff 2019-07-24 16:45:02 +02:00
proto_tcp.c REORG: connection: move tcp_connect_probe() to conn_fd_check() 2019-12-27 16:38:43 +01:00
proto_udp.c BUG/MEDIUM: proto_udp/threads: recv() and send() must not be exclusive. 2019-12-10 19:09:15 +01:00
proto_uxst.c BUILD/MINOR: unix sockets: silence an absurd gcc warning about strncpy() 2019-12-11 16:29:10 +01:00
protocol.c BUG/MEDIUM: protocols: add a global lock for the init/deinit stuff 2019-07-24 16:45:02 +02:00
proxy.c MINOR: config: disable busy polling on old processes 2020-01-02 10:29:49 +01:00
queue.c BUG/MINOR: queue/threads: make the queue unlinking atomic 2019-11-14 14:58:39 +01:00
raw_sock.c MEDIUM: connection: enable reading only once the connection is confirmed 2019-09-06 17:50:36 +02:00
regex.c MEDIUM: regex: modify regex_comp() to atomically allocate/free the my_regex struct 2019-05-07 06:58:15 +02:00
ring.c MINOR: ring: make the parse function automatically set the handler/release 2019-11-15 15:48:12 +01:00
sample.c MINOR: debug: support logging to various sinks 2019-12-19 09:19:13 +01:00
server.c BUG/MINOR: state-file: do not leak memory on parse errors 2019-12-20 17:33:05 +01:00
session.c CLEANUP: session: slightly simplify idle connection cleanup logic 2019-11-15 07:06:46 +01:00
sha1.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
shctx.c CLEANUP: Fix typos in the shctx subsystem 2018-12-02 18:40:29 +01:00
signal.c CLEANUP: Fix a typo in the signal subsystem 2018-12-02 18:39:52 +01:00
sink.c MINOR: ring: make the parse function automatically set the handler/release 2019-11-15 15:48:12 +01:00
ssl_sock.c MINOR: ssl: Remove unused variable "need_out". 2020-01-05 16:45:14 +01:00
standard.c BUILD/MINOR: tools: shut up the format truncation warning in get_gmt_offset() 2019-10-29 10:19:34 +01:00
stats.c BUG/MINOR: stats: Fix HTML output for the frontends heading 2019-12-02 11:40:04 +01:00
stick_table.c MINOR: stick-table: allow sc-set-gpt0 to set value from an expression 2019-11-15 18:24:19 +01:00
stream.c BUILD/MINOR: trace: fix use of long type in a few printf format strings 2019-11-27 15:45:11 +01:00
stream_interface.c BUG/MINOR: stream-int: avoid calling rcv_buf() when splicing is still possible 2019-12-04 11:55:49 +01:00
task.c BUG/MAJOR: task: add a new TASK_SHARED_WQ flag to fix foreing requeuing 2019-12-19 14:42:22 +01:00
tcp_rules.c MEDIUM: stream/trace: Register a new trace source with its events 2019-11-06 10:14:32 +01:00
time.c MINOR: time: add timeofday_as_iso_us() to return instant time as ISO 2019-09-26 08:13:38 +02:00
trace.c BUG/MEDIUM: trace: fix a typo causing an incorrect startup error 2019-11-25 19:47:22 +01:00
uri_auth.c MINOR: stats: replace the ST_* uri_auth flags with STAT_* 2019-10-10 11:30:07 +02:00
vars.c REORG: proto_htx: Move HTX analyzers & co to http_ana.{c,h} files 2019-07-19 09:24:12 +02:00
version.c MINOR: version: make the version strings variables, not constants 2019-10-16 09:56:57 +02:00
wdt.c BUILD/MEDIUM: threads: rename thread_info struct to ha_thread_info 2019-10-17 07:15:17 +02:00
wurfl.c BUG/MINOR: WURFL: fix send_log() function arguments 2019-10-15 10:47:31 +02:00
xprt_handshake.c CLEANUP: connection: rename the wait_event.task field to .tasklet 2019-06-14 14:42:29 +02:00
xxhash.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00