haproxy/src
Willy Tarreau 3fb2c6d5b4 BUG/MINOR: mux-h2: make sure the h2c task exists before refreshing it
When detaching a stream, if it's the last one and the mbuf is blocked,
we leave without freeing the stream yet. We also refresh the h2c task's
timeout, except that it's possible that there's no such task in case
there is no client timeout, causing a crash. The fix just consists in
doing this when the task exists.

This bug has always been there and is extremely hard to meet even
without a client timeout. This fix has to be backported to all
branches, but it's unlikely anyone has ever met it anyay.
2023-03-16 18:45:46 +01:00
..
acl.c BUILD: acl: use __fallthrough in parse_acl_expr() 2022-11-14 11:14:02 +01:00
action.c BUG/MINOR: rules: Fix check_capture() function to use the right rule arguments 2022-04-25 15:28:21 +02:00
activity.c BUG/MINOR: clock: do not mix wall-clock and monotonic time in uptime calculation 2023-02-08 11:06:55 +01:00
applet.c BUG/MEDIUM: stconn: Report a blocked send if some output data are not consumed 2023-02-27 17:45:45 +01:00
arg.c CLEANUP: arg: remove extra check in make_arg_list arg escaping 2022-11-22 16:27:52 +01:00
auth.c MINOR: auth: silence null dereference warning in check_user() 2022-11-24 15:24:02 +01:00
backend.c MINOR: stconn: Always report READ/WRITE event on shutr/shutw 2023-02-22 15:59:16 +01:00
base64.c
cache.c MINOR: stconn: Always report READ/WRITE event on shutr/shutw 2023-02-22 15:59:16 +01:00
calltrace.c BUILD: calltrace: fix wrong include when building with TRACE=1 2022-04-19 08:23:30 +02:00
cbuf.c CLEANUP: pool/tree-wide: remove suffix "_pool" from certain pool names 2022-06-23 11:49:09 +02:00
cfgcond.c MINOR: cfgcond: Implement enabled condition expression 2023-02-21 11:44:55 +01:00
cfgdiag.c
cfgparse-global.c BUG/MINOR: haproxy: Fix option to disable the fast-forward 2023-02-21 11:44:55 +01:00
cfgparse-listen.c MEDIUM: proxy/http_ext: implement dynamic http_ext 2023-01-27 15:18:59 +01:00
cfgparse-quic.c MINOR: quic: add config for retransmit limit 2023-02-03 11:56:46 +01:00
cfgparse-ssl.c MINOR: ssl: Add global options to modify ocsp update min/max delay 2023-03-02 15:37:23 +01:00
cfgparse-tcp.c MINOR: listener: move TCP_FO to bind_conf 2023-02-03 18:00:20 +01:00
cfgparse-unix.c CLEANUP: tree-wide: remove 25 occurrences of unneeded fcntl.h 2022-04-26 10:59:48 +02:00
cfgparse.c MINOR: tinfo: make thread_set functions return nth group/mask instead of first 2023-02-28 10:28:47 +01:00
channel.c MEDIUM: channel: Use CF_READ_EVENT instead of CF_READ_PARTIAL 2023-01-09 18:41:08 +01:00
check.c MINOR: check: use atomic for s->consecutive_errors 2022-12-07 17:04:08 +01:00
chunk.c MINOR: chunk: inline alloc_trash_chunk() 2022-08-17 10:45:22 +02:00
cli.c DEBUG: cli/show_fd: Display connection error code 2023-03-14 15:48:07 +01:00
clock.c MEDIUM: clock: force internal time to wrap early after boot 2023-02-08 11:10:33 +01:00
compression.c CLEANUP: compression: move the default setting of maxzlibmem to defaults 2022-04-25 19:42:43 +02:00
connection.c BUG/MEDIUM: connection: Preserve flags when a conn is removed from an idle list 2023-03-16 15:34:20 +01:00
cpuset.c MEDIUM: cpu-map: replace the process number with the thread group number 2022-07-15 19:43:10 +02:00
debug.c MINOR: debug: add random delay injection with "debug dev delay-inj" 2023-03-09 14:01:58 +01:00
dgram.c
dict.c
dns.c BUG/MINOR: dns: fix ring offset calculation in dns_resolve_send() 2023-03-08 08:57:13 +01:00
dynbuf.c
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
errors.c CLEANUP: assorted typo fixes in the code and comments 2022-10-30 17:17:56 +01:00
ev_epoll.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_evports.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_kqueue.c MINOR: pollers: only update the local date during busy polling 2022-09-21 09:06:28 +02:00
ev_poll.c BUG/MINOR: signals/poller: ensure wakeup from signals 2022-09-09 11:15:22 +02:00
ev_select.c MEDIUM: fd/poller: turn update_mask to group-local IDs 2022-07-15 20:16:30 +02:00
event_hdl.c MINOR: server/event_hdl: add support for SERVER_UP and SERVER_DOWN events 2022-12-06 10:22:07 +01:00
extcheck.c MINOR: checks: use the lighter PRNG for spread checks 2022-10-12 21:49:30 +02:00
fcgi-app.c BUG/MINOR: fcgi-app: prevent 'use-fcgi-app' in default section 2023-01-27 15:18:59 +01:00
fcgi.c BUG/MAJOR: fcgi: Fix uninitialized reserved bytes 2022-12-09 12:23:14 +01:00
fd.c BUG/MAJOR: fd/threads: close a race on closing connections after takeover 2023-03-09 14:01:48 +01:00
filters.c MAJOR: channel: Remove flags to report READ or WRITE errors 2023-02-22 14:52:15 +01:00
fix.c
flt_bwlim.c MINOR: bwlim: Remove useless test on CF_READ_ERROR to detect the last packet 2023-02-13 09:43:38 +01:00
flt_http_comp.c BUILD: compression: use __fallthrough in comp_http_payload() 2022-11-14 11:14:02 +01:00
flt_spoe.c MINOR: stconn: Always report READ/WRITE event on shutr/shutw 2023-02-22 15:59:16 +01:00
flt_trace.c
freq_ctr.c BUG/MEDIUM: freq-ctr: Don't compute overshoot value for empty counters 2022-12-14 10:44:17 +01:00
frontend.c REORG: rename cs_utils.h to sc_strm.h 2022-05-27 19:33:35 +02:00
h1_htx.c BUG/MEDIUM: h1-htx: Never copy more than the max data allowed during parsing 2023-02-27 17:45:45 +01:00
h1.c BUG/CRITICAL: http: properly reject empty http header field names 2023-02-14 08:48:54 +01:00
h2.c MINOR: http: extract content-length parsing from H2 2022-12-14 11:34:18 +01:00
h3_stats.c MINOR: h3: Add a statistics module for h3 2022-05-30 09:59:26 +02:00
h3.c MINOR: h3: add traces on h3_init_uni_stream() error paths 2023-03-08 14:32:30 +01:00
haproxy.c BUG/MINOR: mworker: use MASTER_MAXCONN as default maxconn value 2023-03-09 14:28:44 +01:00
hash.c BUILD: hash: use __fallthrough in hash_djb2() 2022-11-14 11:14:02 +01:00
hlua_fcn.c MEDIUM: stick-table: switch the table lock to rwlock 2022-10-12 14:19:05 +02:00
hlua.c CLEANUP: stconn: Remove old read and write expiration dates 2023-02-22 15:59:16 +01:00
hpack-dec.c BUG/CRITICAL: http: properly reject empty http header field names 2023-02-14 08:48:54 +01:00
hpack-enc.c
hpack-huff.c BUG/MEDIUM: hpack: fix incorrect huffman decoding of some control chars 2023-01-26 11:36:39 +01:00
hpack-tbl.c BUILD/DEBUG: hpack-tbl: fix format string in standalone debug code 2022-04-12 08:30:08 +02:00
hq_interop.c MINOR: h3/hq-interop: handle no data in decode_qcs() with FIN set 2023-02-17 16:25:00 +01:00
http_acl.c
http_act.c BUG/MINOR: http: Memory leak of http redirect rules' format string 2023-01-06 16:42:24 +01:00
http_ana.c BUG/MEDIUM: http-ana: Don't close request side when waiting for response 2023-03-01 17:35:16 +01:00
http_client.c MEDIUM: stconn: Replace read and write timeouts by a unique I/O timeout 2023-02-22 14:52:15 +01:00
http_conv.c BUG/MEDIUM: http-conv: Fix url_enc() to not crush const samples 2022-04-08 10:12:59 +02:00
http_ext.c MINOR: http_ext: adding some documentation, forgot to inline function 2023-03-03 18:22:59 +01:00
http_fetch.c BUG/MINOR: http-fetch: recognize IPv6 addresses in square brackets in req.hdr_ip() 2023-03-01 14:09:46 +01:00
http_htx.c MINOR: http_htx: add http_prepend_header() to prepend value to header 2023-01-27 15:18:59 +01:00
http_rules.c BUILD: http: remove the two unused constructors in rules and ana 2022-04-25 19:26:26 +02:00
http.c MINOR: http: extract content-length parsing from H2 2022-12-14 11:34:18 +01:00
htx.c OPTIM: htx: inline the most common memcpy(8) 2023-02-03 13:39:18 +01:00
init.c MINOR: init: add the pre-check callback 2022-04-22 15:45:47 +02:00
jwt.c MINOR: jwt: Add support for RSA-PSS signatures (PS256 algorithm) 2023-03-08 10:43:04 +01:00
lb_chash.c
lb_fas.c
lb_fwlc.c
lb_fwrr.c
lb_map.c
listener.c CLEANUP: listener: only store conn counts for local threads 2023-02-28 10:28:47 +01:00
log.c MINOR: stconn: Always report READ/WRITE event on shutr/shutw 2023-02-22 15:59:16 +01:00
lru.c BUILD/DEBUG: lru: fix printf format in debug code 2022-04-12 08:19:33 +02:00
mailers.c BUG/MEDIUM: mailers: Set the object type for check attached to an email alert 2022-06-08 15:28:38 +02:00
map.c MINOR: channel/applets: Stop to test CF_WRITE_ERROR flag if CF_SHUTW is enough 2023-01-09 18:41:08 +01:00
mjson.c
mqtt.c MEDIUM: mqtt: support mqtt_is_valid and mqtt_field_value converters for MQTTv3.1 2022-03-22 09:25:52 +01:00
mux_fcgi.c BUG/MEDIUM: connection: Preserve flags when a conn is removed from an idle list 2023-03-16 15:34:20 +01:00
mux_h1.c BUG/MEDIUM: connection: Preserve flags when a conn is removed from an idle list 2023-03-16 15:34:20 +01:00
mux_h2.c BUG/MINOR: mux-h2: make sure the h2c task exists before refreshing it 2023-03-16 18:45:46 +01:00
mux_pt.c BUG/MEDIUM: mux-pt: Set EOS on error on sending path if read0 was received 2023-03-13 11:22:13 +01:00
mux_quic.c BUG/MINOR: mux-quic: properly init STREAM frame as not duplicated 2023-03-07 18:39:49 +01:00
mworker-prog.c BUILD: mworker: include tools.h for platforms without unsetenv() 2022-01-28 19:04:02 +01:00
mworker.c BUG/MEDIUM: mworker: don't register mworker_accept_wrapper() when master FD is wrong 2023-02-21 13:53:35 +01:00
namespace.c
ncbuf.c CLEANUP: ncbuf: use standard BUG_ON with DEBUG_STRICT 2022-11-29 15:15:27 +01:00
pattern.c BUG/MEDIUM: pattern: only visit equivalent nodes when skipping versions 2022-08-01 11:59:46 +02:00
payload.c CLEANUP: check: rename all occurrences of stconn "cs" to "sc" 2022-05-27 19:33:35 +02:00
peers.c MINOR: stconn: Always report READ/WRITE event on shutr/shutw 2023-02-22 15:59:16 +01:00
pipe.c
pool.c BUG/MINOR: pool/stats: Use ullong to report total pool usage in bytes in stats 2022-12-22 13:46:21 +01:00
proto_quic.c MINOR: listener: remove the now useless LI_F_QUIC_LISTENER flag 2023-02-03 18:00:20 +01:00
proto_sockpair.c MINOR: sockpair: move send_fd_uxst() error message in caller 2022-07-25 16:11:11 +02:00
proto_tcp.c MINOR: listener: move TCP_FO to bind_conf 2023-02-03 18:00:20 +01:00
proto_udp.c BUG/MINOR: listeners: fix suspend/resume of inherited FDs 2023-01-16 14:00:50 +01:00
proto_uxdg.c MINOR: proto_ux: ability to dump ABNS names in error messages 2023-02-23 15:05:05 +01:00
proto_uxst.c MINOR: proto_ux: ability to dump ABNS names in error messages 2023-02-23 15:05:05 +01:00
protocol.c MINOR: listener: pause_listener() becomes suspend_listener() 2023-02-23 15:05:05 +01:00
proxy.c BUG/MEDIUM: proxy: properly stop backends on soft-stop 2023-03-14 15:23:55 +01:00
qmux_http.c MINOR: h3/hq-interop: handle no data in decode_qcs() with FIN set 2023-02-17 16:25:00 +01:00
qmux_trace.c BUILD: quic: Fix build for m68k cross-compilation 2022-10-18 12:04:10 +02:00
qpack-dec.c BUG/CRITICAL: http: properly reject empty http header field names 2023-02-14 08:48:54 +01:00
qpack-enc.c BUG/MINOR: qpack: support bigger prefix-integer encoding 2022-05-30 14:30:05 +02:00
qpack-tbl.c CLEANUP: qpack: properly use the QPACK macros not HPACK ones in debug code 2022-11-24 15:38:26 +01:00
queue.c BUG/MEDIUM: queue/threads: limit the number of entries dequeued at once 2022-07-30 10:00:59 +02:00
quic_cc_cubic.c BUG/MEDIUM: quic: Floating point exception in cubic_root() 2022-08-03 14:27:20 +02:00
quic_cc_newreno.c CLEANUP: quic: create a dedicated quic_conn module 2022-10-03 16:25:17 +02:00
quic_cc.c CLEANUP: quic: fix headers 2022-10-03 16:25:17 +02:00
quic_conn.c BUG/MINOR: quic: Missing STREAM frame length updates 2023-03-16 14:35:19 +01:00
quic_frame.c MINOR: quic: Typo fix for ACK_ECN frame 2023-03-08 08:50:54 +01:00
quic_loss.c BUG/MINOR: quic: Too big PTO during handshakes 2023-02-03 17:55:55 +01:00
quic_sock.c MINOR: quic_sock: un-statify quic_conn_sock_fd_iocb() 2023-03-10 14:30:01 +01:00
quic_stats.c MINOR: quic: detect connection migration 2022-12-02 14:45:43 +01:00
quic_stream.c MINOR: quic: New quic_cstream object implementation 2022-10-13 10:12:03 +02:00
quic_tls.c MINOR: quic: Add traces about QUIC TLS key update 2023-03-03 19:12:26 +01:00
quic_tp.c MINOR: quic: Do not accept wrong active_connection_id_limit values 2023-03-08 08:50:54 +01:00
raw_sock.c OPTIM: global: move byte counts out of global and per-thread 2023-01-12 16:37:45 +01:00
regex.c BUG/MINOR: regex: Properly handle PCRE2 lib compiled without JIT support 2022-09-01 19:34:46 +02:00
resolvers.c BUG/MEDIUM: resolvers: Properly stop server resolutions on soft-stop 2023-03-14 15:23:55 +01:00
ring.c CLEANUP: ring: remove the now unused ring's offset 2023-02-24 09:26:30 +01:00
sample.c MINOR: jwt: Add support for RSA-PSS signatures (PS256 algorithm) 2023-03-08 10:43:04 +01:00
server_state.c BUILD: server-state: avoid using not-so-portable isblank() 2022-01-28 19:04:02 +01:00
server.c BUG/MEDIUM: connection: Preserve flags when a conn is removed from an idle list 2023-03-16 15:34:20 +01:00
session.c BUG/MEDIUM: quic: fix crash when "option nolinger" is set in the frontend 2023-02-09 18:04:10 +01:00
sha1.c
shctx.c
signal.c BUG/MINOR: signals/poller: ensure wakeup from signals 2022-09-09 11:15:22 +02:00
sink.c BUG/MEDIUM: sink/forwarder: ensure ring offset is properly readjusted to head 2023-03-08 08:54:43 +01:00
slz.c IMPORT: slz: declare len to fix debug build when optimal match is enabled 2022-11-14 11:14:02 +01:00
sock_inet.c BUG/MEDIUM: listener: duplicate inherited FDs if needed 2023-01-11 11:27:20 +01:00
sock_unix.c MINOR: proto_ux: ability to dump ABNS names in error messages 2023-02-23 15:05:05 +01:00
sock.c CLEANUP: sock: always perform last connection updates before wakeup 2023-03-08 16:07:32 +01:00
ssl_ckch.c MINOR: ssl-ckch: Stop to test CF_WRITE_ERROR to commit CA/CRL file 2023-02-13 09:43:38 +01:00
ssl_crtlist.c BUG/MINOR: ssl: Fix ocsp-update when using "add ssl crt-list" 2023-03-02 15:57:56 +01:00
ssl_ocsp.c MINOR: ssl: Add certificate path to 'show ssl ocsp-response' output 2023-03-14 11:07:32 +01:00
ssl_sample.c BUG/MINOR: ssl: don't initialize the keylog callback when not required 2022-11-18 15:24:23 +01:00
ssl_sock.c BUG/MEDIUM: connection: Preserve flags when a conn is removed from an idle list 2023-03-16 15:34:20 +01:00
ssl_utils.c MINOR: ssl: Move OCSP code to a dedicated source file 2022-12-21 11:21:07 +01:00
stats.c MINOR: stconn: Always report READ/WRITE event on shutr/shutw 2023-02-22 15:59:16 +01:00
stconn.c BUG/MEDIUM: stconn: Report a blocked send if some output data are not consumed 2023-02-27 17:45:45 +01:00
stick_table.c BUG/MEDIUM: stick-table: do not leave entries in end of window during purge 2023-02-08 08:55:02 +01:00
stream.c MEDIUM: stream: Eventually handle stream timeouts when exiting process_stream() 2023-02-27 17:45:45 +01:00
task.c BUG/MEDIUM: sched: allow a bit more TASK_HEAVY to be processed when needed 2023-02-17 16:01:34 +01:00
tcp_act.c MEDIUM: tcp-act: add parameter rst-ttl to silent-drop 2022-11-19 04:53:47 +01:00
tcp_rules.c MAJOR: channel: Remove flags to report READ or WRITE errors 2023-02-22 14:52:15 +01:00
tcp_sample.c BUG/MINOR: tcp_sample: fix a bug in fc_dst_port and fc_dst_is_local sample fetches 2023-03-16 11:26:53 +01:00
tcpcheck.c BUG/MINOR: http-check: Skip C-L header for empty body when it's not mandatory 2023-02-28 18:51:27 +01:00
thread.c BUG/MINOR: thread: report thread and group counts in the correct order 2023-03-09 11:40:56 +01:00
time.c
tools.c MINOR: quic_sock: un-statify quic_conn_sock_fd_iocb() 2023-03-10 14:30:01 +01:00
trace.c MINOR: trace: add a trace_no_cb() dummy callback for when to use no callback 2023-01-26 15:49:43 +01:00
uri_auth.c
uri_normalizer.c
vars.c BUILD: vars: use __fallthrough in var_accounting_{diff,add}() 2022-11-14 11:14:02 +01:00
version.c
wdt.c BUG/MEDIUM: wdt: fix wrong thread being checked for sleeping 2023-02-17 16:01:34 +01:00
xprt_handshake.c CLEANUP: pool/tree-wide: remove suffix "_pool" from certain pool names 2022-06-23 11:49:09 +02:00
xprt_quic.c MEDIUM: quic: trigger fast connection closing on process stopping 2023-02-20 11:20:18 +01:00