HAProxy Load Balancer's development branch (mirror of git.haproxy.org)
This report summarizes scanner evidence for haproxy/haproxy, a C project with 6,962 GitHub stars. SynthScan examined 510,069 lines of code across 938 source files, recording 653 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 1.3 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 639 finding(s).
Are imports declared and package/API names verified? 4 finding(s).
Are wrappers, guards, and repeated structures necessary? 16 finding(s).
Which changes need focused human review? 653 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 653 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | reg-tests/spoe/spoa_mock.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | include/import/xxhash.h | 281 | * avoiding naming collision with previous inclusions. | COMMENT |
| LOW | include/import/xxhash.h | 301 | # undef XXH64_freeState | COMMENT |
| LOW | include/import/xxhash.h | 321 | # undef XXH3_generateSecret | COMMENT |
| LOW | include/import/xxhash.h | 341 | # define XXH_NAMESPACE XXH_INLINE_ | COMMENT |
| LOW | include/import/xxhash.h | 361 | # define XXH3_state_t XXH_IPREF(XXH3_state_t) | COMMENT |
| LOW | include/import/xxhash.h | 381 | # endif | COMMENT |
| LOW | include/import/xxhash.h | 401 | /* XXH64 */ | COMMENT |
| LOW | include/import/xxhash.h | 421 | # define XXH3_64bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret) | COMMENT |
| LOW | include/import/xxhash.h | 441 | # define XXH128_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH128_canonicalFromHash) | COMMENT |
| LOW | include/import/xxhash.h | 461 | #endif | COMMENT |
| LOW | include/import/xxhash.h | 781 | #if XXH_HAS_C_ATTRIBUTE(fallthrough) || XXH_HAS_CPP_ATTRIBUTE(fallthrough) | COMMENT |
| LOW | include/import/xxhash.h | 1481 | #elif defined(__GNUC__) | COMMENT |
| LOW | include/import/xxhash.h | 1981 | COMMENT | |
| LOW | include/import/xxhash.h | 2001 | /* don't check on sizeopt, x86, aarch64, or arm when unaligned access is available */ | COMMENT |
| LOW | include/import/xxhash.h | 2101 | #if XXH_NO_INLINE_HINTS /* disable inlining hints */ | COMMENT |
| LOW | include/import/xxhash.h | 2141 | */ | COMMENT |
| LOW | include/import/xxhash.h | 2561 | #define XXH_PRIME32_2 0x85EBCA77U /*!< 0b10000101111010111100101001110111 */ | COMMENT |
| LOW | include/import/xxhash.h | 3401 | */ | COMMENT |
| LOW | include/import/xxhash.h | 3421 | # define XXH_HAS_INCLUDE(x) 0 | COMMENT |
| LOW | include/import/xxhash.h | 3581 | # define XXH_NEON 4 | COMMENT |
| LOW | include/import/xxhash.h | 3601 | # define XXH_VECTOR XXH_AVX2 | COMMENT |
| LOW | include/import/xxhash.h | 3621 | # define XXH_VECTOR XXH_SCALAR | COMMENT |
| LOW | include/import/xxhash.h | 3641 | # elif XXH_VECTOR == XXH_AVX512 /* avx512 */ | COMMENT |
| LOW | include/import/xxhash.h | 3861 | # define XXH_VSX_BE 1 | COMMENT |
| LOW | include/import/xxhash.h | 3941 | svuint64_t mul = svmad_u64_x(mask, mixed_lo, mixed_hi, swapped); \ | COMMENT |
| LOW | include/import/xxhash.h | 4481 | # define ACC_NB XXH_ACC_NB | COMMENT |
| LOW | include/import/xxhash.h | 5481 | COMMENT | |
| LOW | include/import/xxhash.h | 5501 | #elif (XXH_VECTOR == XXH_VSX) | COMMENT |
| LOW | include/import/mt_list.h | 41 | * code is mostly used to validate builds and run single-threaded tests. | COMMENT |
| LOW | include/import/atomic-ops.h | 41 | * Architecture-specific versions of the various operations | COMMENT |
| LOW | include/import/atomic-ops.h | 801 | COMMENT | |
| LOW | include/import/atomic-ops.h | 821 | COMMENT | |
| LOW | include/import/atomic-ops.h | 841 | #ifndef pl_dec_acq | COMMENT |
| LOW | include/import/atomic-ops.h | 861 | COMMENT | |
| LOW | include/import/atomic-ops.h | 881 | #endif | COMMENT |
| LOW | include/import/atomic-ops.h | 901 | COMMENT | |
| LOW | include/import/atomic-ops.h | 921 | #ifndef pl_sub | COMMENT |
| LOW | include/import/atomic-ops.h | 941 | #define pl_and(ptr, x) (__atomic_and_fetch((ptr), (x), __ATOMIC_SEQ_CST)) | COMMENT |
| LOW | include/import/atomic-ops.h | 961 | #endif | COMMENT |
| LOW | include/import/atomic-ops.h | 1001 | #ifndef pl_cmpxchg | COMMENT |
| LOW | include/import/atomic-ops.h | 1021 | #endif | COMMENT |
| LOW | include/import/atomic-ops.h | 1041 | #define pl_ldand(ptr, x) (__atomic_fetch_and((ptr), (x), __ATOMIC_SEQ_CST)) | COMMENT |
| LOW | include/import/atomic-ops.h | 1061 | COMMENT | |
| LOW | include/import/atomic-ops.h | 1081 | #endif | COMMENT |
| LOW | include/import/atomic-ops.h | 1101 | * definitions. Everything not defined will use the generic code at the end. | COMMENT |
| LOW | include/import/atomic-ops.h | 1121 | # define pl_mb_store _pl_mb_store | COMMENT |
| LOW | include/import/atomic-ops.h | 1141 | #if !defined(pl_load_lax) && defined(_pl_load_lax) | COMMENT |
| LOW | include/import/atomic-ops.h | 1161 | COMMENT | |
| LOW | include/import/atomic-ops.h | 1181 | #endif | COMMENT |
| LOW | include/import/atomic-ops.h | 1201 | # define pl_inc _pl_inc | COMMENT |
| LOW | include/import/atomic-ops.h | 1221 | COMMENT | |
| LOW | include/import/atomic-ops.h | 1241 | #endif | COMMENT |
| LOW | include/import/atomic-ops.h | 1261 | #endif | COMMENT |
| LOW | include/import/atomic-ops.h | 1281 | # define pl_and_noret_rel _pl_and_noret_rel | COMMENT |
| LOW | include/import/atomic-ops.h | 1301 | #if !defined(pl_or) && defined(_pl_or) | COMMENT |
| LOW | include/import/atomic-ops.h | 1321 | COMMENT | |
| LOW | include/import/atomic-ops.h | 1341 | # define pl_xor_noret_lax _pl_xor_noret_lax | COMMENT |
| LOW | include/import/atomic-ops.h | 1361 | #if !defined(pl_sub_acq) && defined(_pl_sub_acq) | COMMENT |
| LOW | include/import/atomic-ops.h | 1381 | COMMENT | |
| 553 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | include/haproxy/mqtt-t.h | 54 | * Don't forget to "left offset by 4 bits (<< 4)" the values below when matching against the fixed | COMMENT |
| LOW | include/haproxy/h1.h | 105 | * WARNING: Don't forget to update it if a new flag must be preserved when | COMMENT |
| LOW | src/cfgparse-listen.c | 1300 | memprintf(err, "%s expects only one argument, don't forget to escape spaces!", args[0]); | CODE |
| LOW | src/log.c | 7207 | * Don't forget to update the documentation when new log origins are added | COMMENT |
| LOW | src/tcpcheck.c | 2412 | * change, don't forget to change this test and update all | COMMENT |
| MEDIUM | src/h2.c | 73 | * It's worth noting that H2 still supports an encoding to map H1 origin-form | COMMENT |
| LOW | src/ssl_ckch.c | 3108 | * /!\ don't forget to update __hlua_ckch_commit() if you changes things there. /!\ | COMMENT |
| MEDIUM | src/http.c | 25 | * will not handle them correctly. It's worth noting that chars 128..255 are | COMMENT |
| LOW | src/jwt.c | 488 | /* Don't forget to remove SSL errors to be sure they cannot be | COMMENT |
| MEDIUM | src/slz.c | 1033 | * It's worth noting that we *do not* fixup <bit9> if a match | COMMENT |
| LOW | src/pattern.c | 1946 | /* don't forget to explicitly initialize all pat_ref struct members */ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | reg-tests/spoe/spoa_mock.py | 157 | except Exception: | CODE |
| HIGH | admin/release-estimator/release-estimator.py | 375 | except Exception as e: | CODE |
| HIGH | .github/matrix.py | 319 | except: | CODE |
| HIGH | .github/matrix.py | 328 | except: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/matrix.py | 68 | def aws_lc_version_string_to_num(version_string): | CODE |
| LOW⚡ | .github/matrix.py | 116 | def aws_lc_fips_version_string_to_num(version_string): | CODE |
| LOW⚡ | .github/matrix.py | 119 | def aws_lc_fips_version_valid(version_string): | CODE |
| LOW⚡ | .github/matrix.py | 123 | def determine_latest_aws_lc_fips(ssl): | CODE |
| LOW⚡ | .github/matrix.py | 133 | def wolfssl_version_string_to_num(version_string): | CODE |
| LOW | .github/matrix.py | 149 | def determine_latest_libressl(ssl): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/mptcp-backend.py | 1 | # ============================================================================= | COMMENT |
| MEDIUM | examples/mptcp-backend.py | 3 | # ============================================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/mux_h1.c | 3134 | /* The message is chunked. We need to check if we must | COMMENT |
| LOW | src/check.c | 1431 | /* when going to sleep, we need to check if other checks are waiting | COMMENT |
| LOW | src/cache.c | 811 | /* Here we need to check if any compression filter precedes the cache | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | reg-tests/spoe/spoa_mock.py | 157 | except Exception: | CODE |
| MEDIUM | reg-tests/spoe/spoa_mock.py | 103 | def handle(sock, addr): | CODE |
| LOW | admin/release-estimator/release-estimator.py | 342 | except Exception as err: | STRING |
| LOW | admin/release-estimator/release-estimator.py | 375 | except Exception as e: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | reg-tests/spoe/spoa_mock.py | 170 | # Signal readiness so the test harness can synchronize before starting | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | reg-tests/spoe/spoa_mock.py | 103 | CODE | |
| LOW | reg-tests/resolvers/tcp_fallback.py | 97 | CODE | |
| LOW | admin/release-estimator/release-estimator.py | 65 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | doc/lua-api/conf.py | 6 | # This file is execfile()d with the current directory set to its containing dir. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | addons/51degrees/dummy/trie/51Degrees.c | 48 | static fiftyoneDegreesDeviceOffset dummyOffset = { 0, 0, "dummy-user-agent" }; | CODE |
| LOW | addons/51degrees/dummy/pattern/51Degrees.c | 42 | return "dummy-value"; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | doc/lua-api/conf.py | 14 | CODE | |
| LOW | doc/lua-api/conf.py | 14 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | addons/wurfl/dummy/wurfl/wurfl.h | 386 | // Example usage: | COMMENT |