haproxy/src
Christopher Faulet 02c893332b BUG/MEDIUM: h1: Properly reset h1m flags when headers parsing is restarted
If H1 headers are not fully received at once, the parsing is restarted a
last time when all headers are finally received. When this happens, the h1m
flags are sanitized to remove all value set during parsing.

But some flags where erroneously preserved. Among others, H1_MF_TE_CHUNKED
flag was not removed, what could lead to parsing error.

To fix the bug and make things easy, a mask has been added with all flags
that must be preserved. It will be more stable. This mask is used to
sanitize h1m flags.

This patch should fix the issue #1469. It must be backported to 2.5.
2021-12-02 09:46:29 +01:00
..
acl.c MINOR: add ::1 to predefined LOCALHOST acl 2021-10-18 07:21:28 +02:00
action.c CLEANUP: Apply ha_free.cocci 2021-11-05 07:48:38 +01:00
activity.c MINOR: memprof: add one pointer size to the size of allocations 2021-10-22 16:40:09 +02:00
applet.c BUG/MINOR: applet: Notify the other side if data were consumed by an applet 2021-04-28 10:51:08 +02:00
arg.c MINOR: arg: Be able to forbid unresolved args when building an argument list 2021-09-30 16:37:05 +02:00
auth.c BUILD: auth: include missing list.h 2021-05-08 12:29:51 +02:00
backend.c MINOR: backend: Get client dst address to set the server's one only if needful 2021-11-05 15:25:34 +01:00
base64.c BUG/MINOR: base64: base64urldec() ignores padding in output size check 2021-08-25 16:14:14 +02:00
cache.c BUG/MINOR: cache: Fix loop on cache entries in "show cache" 2021-11-23 16:15:02 +01:00
calltrace.c
cbuf.c MINOR: quic: Make circular buffer internal buffers be variable-sized. 2021-09-23 15:27:25 +02:00
cfgcond.c MINOR: ssl: Add ssllib_name_startswith precondition 2021-10-13 11:28:08 +02:00
cfgdiag.c CLEANUP: assorted typo fixes in the code and comments 2021-04-26 10:42:58 +02:00
cfgparse-global.c MINOR: config: use a standard parser for the "nbthread" keyword 2021-09-27 09:47:40 +02:00
cfgparse-listen.c BUG/MEDIUM: sample: Cumulate frontend and backend sample validity flags 2021-10-15 14:12:19 +02:00
cfgparse-ssl.c BUILD: cfgparse-ssl: add missing errors.h 2021-10-07 01:36:51 +02:00
cfgparse-tcp.c MINOR: server: prepare parsing for dynamic servers 2021-03-18 15:51:12 +01:00
cfgparse-unix.c
cfgparse.c BUG/MINOR: server: Don't rely on last default-server to init server SSL context 2021-12-01 11:47:08 +01:00
channel.c CLEANUP: channel: fix comment in ci_putblk. 2021-02-13 09:43:17 +01:00
check.c BUG/MEDIUM: checks: fix the starting thread for external checks 2021-10-20 18:43:30 +02:00
chunk.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
cli.c BUG/MEDIUM: cli: Properly set stream analyzers to process one command at a time 2021-11-29 11:28:54 +01:00
clock.c REORG: thread/clock: move the clock parts of thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
compression.c REORG: thread/clock: move the clock parts of thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
connection.c MEDIUM: connection: rename fc_conn_err and bc_conn_err to fc_err and bc_err 2021-11-06 09:20:07 +01:00
cpuset.c BUG/MEDIUM: cpuset: fix cpuset size for FreeBSD 2021-10-15 17:16:11 +02:00
debug.c MINOR: debug: report the group and thread ID in the thread dumps 2021-10-08 17:22:26 +02:00
dgram.c
dict.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
dns.c MINOR: stream: Use backend stream-interface dst address instead of target_addr 2021-10-27 11:35:59 +02:00
dynbuf.c REORG: thread/sched: move the last dynamic thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
ebpttree.c
ebsttree.c
ebtree.c
errors.c CLEANUP: Apply xalloc_size.cocci 2021-09-17 17:22:05 +02:00
ev_epoll.c MINOR: activity: get the run_time from the clock updates 2021-10-08 17:22:26 +02:00
ev_evports.c BUILD: evports: remove a leftover from the dead_fd cleanup 2021-11-30 09:34:32 +01:00
ev_kqueue.c MINOR: activity: get the run_time from the clock updates 2021-10-08 17:22:26 +02:00
ev_poll.c MINOR: activity: get the run_time from the clock updates 2021-10-08 17:22:26 +02:00
ev_select.c MINOR: activity: get the run_time from the clock updates 2021-10-08 17:22:26 +02:00
extcheck.c MINOR: proxy: Introduce proxy flags to replace disabled bitfield 2021-10-15 14:12:19 +02:00
fcgi-app.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
fcgi.c
fd.c REORG: thread/sched: move the thread_info flags to the thread_ctx 2021-10-08 17:22:26 +02:00
filters.c MINOR: proxy: Introduce proxy flags to replace disabled bitfield 2021-10-15 14:12:19 +02:00
fix.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
flt_http_comp.c MINOR: compression: Warn for 'compression offload' in defaults sections 2021-11-05 16:36:42 +01:00
flt_spoe.c REORG: thread/sched: move the last dynamic thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
flt_trace.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
freq_ctr.c CLEANUP: tree-wide: remove unneeded include time.h in ~20 files 2021-10-07 01:41:14 +02:00
frontend.c MINOR: frontend: Rely on client src and dst addresses at stream level 2021-10-27 11:34:21 +02:00
h1_htx.c BUG/MEDIUM: mux-h1: Adjust conditions to ask more space in the channel buffer 2021-09-23 16:13:17 +02:00
h1.c BUG/MEDIUM: h1: Properly reset h1m flags when headers parsing is restarted 2021-12-02 09:46:29 +01:00
h2.c CLEANUP: Apply ist.cocci 2021-11-08 08:05:39 +01:00
h3.c MINOR: quic: redirect app_ops snd_buf through mux 2021-11-18 10:50:58 +01:00
haproxy.c BUG/MINOR: mworker: deinit of thread poller was called when not initialized 2021-11-26 14:43:57 +01:00
hash.c
hlua_fcn.c BUG/MINOR: lua: don't expose internal proxies 2021-11-24 16:14:24 +01:00
hlua.c BUG/MINOR: lua: remove loop initial declarations 2021-11-25 09:07:34 +01:00
hpack-dec.c CLEANUP: Use isttest(const struct ist) whenever possible 2021-03-03 05:07:10 +01:00
hpack-enc.c
hpack-huff.c CONTRIB: move some dev-specific tools to dev/ 2021-04-02 17:48:42 +02:00
hpack-tbl.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
hq_interop.c BUG/MINOR: hq-interop: fix potential NULL dereference 2021-11-19 15:10:46 +01:00
http_acl.c
http_act.c BUG/MEDIUM: sample: Cumulate frontend and backend sample validity flags 2021-10-15 14:12:19 +02:00
http_ana.c Revert "BUG/MINOR: http-ana: Don't eval front after-response rules if stopped on back" 2021-11-09 18:02:49 +01:00
http_client.c BUG/MINOR: httpclient: allow to replace the host header 2021-11-24 15:44:36 +01:00
http_conv.c BUG/MINOR threads: Use get_(local|gm)time instead of (local|gm)time 2021-08-30 06:14:32 +02:00
http_fetch.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
http_htx.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
http_rules.c BUG/MEDIUM: sample: Cumulate frontend and backend sample validity flags 2021-10-15 14:12:19 +02:00
http.c MINOR: http: Add 422-Unprocessable-Content error message 2021-09-28 16:21:25 +02:00
htx.c CLEANUP: Apply ist.cocci 2021-11-08 08:05:39 +01:00
init.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
jwt.c BUG/MINOR: jwt: Fix jwt_parse_alg incorrectly returning JWS_ALG_NONE 2021-11-03 17:19:48 +01:00
lb_chash.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fas.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fwlc.c BUG/MEDIUM: leastconn: fix rare possibility of divide by zero 2021-09-22 07:24:02 +02:00
lb_fwrr.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
lb_map.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
listener.c CLEANUP: listeners: remove unreachable code in clone_listener() 2021-10-16 14:58:30 +02:00
log.c BUG/MAJOR: segfault using multiple log forward sections. 2021-12-01 15:21:56 +01:00
lru.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
mailers.c MINOR: task: provide 3 task_new_* wrappers to simplify the API 2021-10-01 18:36:29 +02:00
map.c MINOR: map/acl: print the count of all the map/acl entries in "show map/acl" 2021-05-25 08:44:45 +02:00
mjson.c MINOR: sample: converter: Add mjson library. 2021-04-15 17:05:38 +02:00
mqtt.c CLEANUP: Apply ist.cocci 2021-11-05 07:48:38 +01:00
mux_fcgi.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
mux_h1.c MINOR: mux-h1: add stat for total amount of bytes received and sent 2021-12-01 11:47:08 +01:00
mux_h2.c BUG/MEDIUM: mux-h2: always process a pending shut read 2021-11-19 12:10:02 +01:00
mux_pt.c MINOR: stream-int: Notify mux when the buffer is not stuck when calling rcv_buf 2021-09-23 16:25:47 +02:00
mux_quic.c MEDIUM: quic: inspect ALPN to install app_ops 2021-11-18 10:50:58 +01:00
mworker-prog.c BUG/MINOR: mworker: doesn't launch the program postparser 2021-11-10 15:53:01 +01:00
mworker.c MINOR: mworker: change the way we set PROC_O_LEAVING 2021-11-10 15:53:01 +01:00
namespace.c
pattern.c CLEANUP: Add haproxy/xxhash.h to avoid modifying import/xxhash.h 2021-09-11 19:58:45 +02:00
payload.c BUILD: payload: include tools.h in payload.c 2021-05-08 13:55:40 +02:00
peers.c CLEANUP: peers: Remove useless test on peer variable in peer_trace() 2021-11-15 09:41:00 +01:00
pipe.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
pool.c MEDIUM: pool: Following up on previous pool trimming update. 2021-12-01 10:38:31 +01:00
proto_quic.c MINOR: quic: Allocate listener RX buffers 2021-11-05 15:20:04 +01:00
proto_sockpair.c MINOR: protocols: add a new protocol type selector 2021-10-27 17:05:36 +02:00
proto_tcp.c MINOR: protocols: add a new protocol type selector 2021-10-27 17:05:36 +02:00
proto_udp.c MINOR: protocols: add a new protocol type selector 2021-10-27 17:05:36 +02:00
proto_uxdg.c MINOR: protocols: add a new protocol type selector 2021-10-27 17:05:36 +02:00
proto_uxst.c MINOR: protocols: add a new protocol type selector 2021-10-27 17:05:36 +02:00
protocol.c MINOR: protocols: make use of the protocol type to select the protocol 2021-10-27 17:31:20 +02:00
proxy.c BUG/MINOR: proxy: Release ACLs and TCP/HTTP rules of default proxies 2021-10-15 14:33:35 +02:00
qpack-dec.c MINOR: qpack: support litteral field line with non-huff name 2021-11-25 11:41:29 +01:00
qpack-enc.c MINOR: h3/qpack: fix gcc11 warnings 2021-11-08 08:59:30 +01:00
qpack-tbl.c MINOR: qpack: fix wrong comment 2021-09-23 15:27:25 +02:00
queue.c BUG/MAJOR: queue: better protect a pendconn being picked from the proxy 2021-08-31 18:37:13 +02:00
quic_cc_newreno.c
quic_cc.c
quic_frame.c MINOR: quic: Constantness fixes for frame builders/parsers. 2021-09-23 15:27:25 +02:00
quic_sock.c BUILD: quic: fix potential NULL dereference on xprt_quic 2021-11-19 15:55:19 +01:00
quic_tls.c MINOR: quic: Optional header protection key for quic_tls_derive_keys() 2021-11-30 11:51:12 +01:00
raw_sock.c CLEANUP: tree-wide: remove unneeded include time.h in ~20 files 2021-10-07 01:41:14 +02:00
regex.c
resolvers.c MEDIUM: resolvers: No longer store query items in a list into the response 2021-12-01 15:21:56 +01:00
ring.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
sample.c MINOR: jwt: Make invalid static JWT algorithms an error in jwt_verify converter 2021-11-03 11:15:32 +01:00
server_state.c MINOR: proxy: Introduce proxy flags to replace disabled bitfield 2021-10-15 14:12:19 +02:00
server.c BUG/MINOR: server: Don't rely on last default-server to init server SSL context 2021-12-01 11:47:08 +01:00
session.c MINOR: session: Rely on client source address at session level to log error 2021-10-27 11:34:21 +02:00
sha1.c
shctx.c MINOR: shctx: add a few BUG_ON() for consistency checks 2021-11-19 19:25:13 +01:00
signal.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
sink.c MINOR: stream: Use backend stream-interface dst address instead of target_addr 2021-10-27 11:35:59 +02:00
slz.c CLEANUP: slz: Mark reset_refs as static 2021-09-24 15:07:50 +02:00
sock_inet.c MEDIUM: listeners: split the thread mask between receiver and bind_conf 2021-10-14 21:27:48 +02:00
sock_unix.c MEDIUM: listeners: split the thread mask between receiver and bind_conf 2021-10-14 21:27:48 +02:00
sock.c MEDIUM: mworker: seamless reload use the internal sockpairs 2021-11-24 19:00:39 +01:00
ssl_ckch.c BUG/MINOR: ssl: free correctly the sni in the backend SSL cache 2021-11-23 15:20:59 +01:00
ssl_crtlist.c MEDIUM: ssl: Chain ckch instances in ca-file entries 2021-05-17 10:50:24 +02:00
ssl_sample.c MINOR: ssl: make the ssl_fc_sni() sample-fetch function always available 2021-11-06 09:20:07 +01:00
ssl_sock.c MINOR: quic: Immediately close if no transport parameters extension found 2021-11-30 11:47:46 +01:00
ssl_utils.c MINOR: sample: Expose SSL captures using new fetchers 2021-08-26 19:48:34 +02:00
stats.c MINOR: promex: backend aggregated server check status 2021-11-09 10:51:08 +01:00
stick_table.c BUG/MINOR: stick-table/cli: Check for invalid ipv6 key 2021-11-15 09:17:27 +01:00
stream_interface.c BUG/MEDIUM: stream-int: Block reads if channel cannot receive more data 2021-11-02 16:55:01 +01:00
stream.c MINOR: stream/mux: implement websocket stream flag 2021-11-03 16:24:48 +01:00
task.c BUG/MINOR: task: do not set TASK_F_USR1 for no reason 2021-10-21 16:17:29 +02:00
tcp_act.c MINOR: tcp-act: Add set-src/set-src-port for "tcp-request content" rules 2021-10-27 11:35:59 +02:00
tcp_rules.c MEDIUM: tcp-rules: Eval TCP rules defined in defaults sections 2021-10-15 14:12:19 +02:00
tcp_sample.c MINOR: tcp-sample: Add samples to get original info about client connection 2021-10-27 11:35:59 +02:00
tcpcheck.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
thread.c MINOR: threads: add a new function to resolve config groups and masks 2021-10-08 17:22:26 +02:00
time.c REORG: time: move time-keeping code and variables to clock.c 2021-10-08 17:22:26 +02:00
tools.c MINOR: config: support default values for environment variables 2021-11-18 17:54:49 +01:00
trace.c CLEANUP: cli/tree-wide: properly re-align the CLI commands' help messages 2021-05-07 11:51:26 +02:00
uri_auth.c
uri_normalizer.c MINOR: uri_normalizer: Add fragment-encode normalizer 2021-05-11 17:24:32 +02:00
vars.c BUG/MINOR: vars: Fix the set-var and unset-var converters 2021-12-01 10:32:19 +01:00
version.c
wdt.c REORG: thread/sched: move the thread_info flags to the thread_ctx 2021-10-08 17:22:26 +02:00
xprt_handshake.c MEDIUM: connections: Implement a start() method for xprt_handshake. 2021-03-19 15:33:04 +01:00
xprt_quic.c MINOR: quic: Delete the ODCIDs asap 2021-11-30 12:01:32 +01:00