From 37bd4d8a7c3f9fcb24efb90cad1ff20a6d7b282e Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Wed, 1 Oct 2025 17:34:38 -0400 Subject: [PATCH] Reduce Max number of commands handled per fuzzer pass in quic-lcidm. We've gotten a few recent reports of a hang in the quic-lcidm fuzzer: https://issues.oss-fuzz.com/issues/448510502 It looks pretty straightforward (I think). The fuzzer input buffer is used in this particular case to randomly issue commands to the lcidm hash table (add/delete/query/flush/etc). The loop for the command processing (based on the input buffer), is limited to 10k commands. However the fuzzer will on occasion provide very large buffers (500k) which easily saturate that limit. If the input buffer happens to do something like get biased toward mostly additions, we wind up with a huge hashtable that has to constantly grow and rehash, which we've seen leads to timeouts in the past. Most direct fix I think here, given that this is something of an artificial failure in the fuzzer, is to simply clamp the command limit more. Fixes openssl/project#1664 Reviewed-by: Kurt Roeckx Reviewed-by: Matt Caswell Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/28724) (cherry picked from commit 01c7958f2359e951a95350affb6b178fb50fed03) --- fuzz/quic-lcidm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fuzz/quic-lcidm.c b/fuzz/quic-lcidm.c index 4c206e631f9..221bc095013 100644 --- a/fuzz/quic-lcidm.c +++ b/fuzz/quic-lcidm.c @@ -48,7 +48,7 @@ enum { CMD_LOOKUP }; -#define MAX_CMDS 10000 +#define MAX_CMDS 5000 static int get_cid(PACKET *pkt, QUIC_CONN_ID *cid) { -- 2.47.3