Skip to content

20261110-misc-fixes - #12084

Open
douzzer wants to merge 6 commits into
wolfSSL:masterfrom
douzzer:20261110-misc-fixes
Open

douzzer wants to merge 6 commits into
wolfSSL:masterfrom
douzzer:20261110-misc-fixes

Conversation

@douzzer

@douzzer douzzer commented Nov 10, 2026

Copy link
Copy Markdown
Contributor

src/ssl_ech.c, wolfssl/internal.h, src/internal.c, src/tls.c,
tests/api/test_ssl_ext.c, .github/configs/os-check-linux.json:
fix -Wnull-dereferences in test_ech_decision_coverage(), masked in CI by
dependence on WOLFSSL_TEST_STATIC_BUILD.

  • Make SetEchConfigsEx(), GetEchConfig(), GetEchConfigsEx(), FreeEchConfigs(),
    and SetRetryConfigs(), callable from test coding using WOLFSSL_TEST_VIS and
    wolfSSL_local_ symbol prefixes, so that test_ech_decision_coverage() doesn't
    depend on defined(WOLFSSL_TEST_STATIC_BUILD).

  • Also add statically-linked enable-all scenario in
    .github/configs/os-check-linux.json, to cover remaining tests that depend on
    defined(WOLFSSL_TEST_STATIC_BUILD).

.github/workflows/multi-compiler.yml: add clang-19-unreachable-all and clang-19-unreachable-all-crypto (-Wunreachable-code-aggressive coverage).

wolfssl/internal.h: use bare 0 in !WOLFSSL_HAVE_MLKEM definitions for
WOLFSSL_NAMED_GROUP_IS_PQC() and WOLFSSL_NAMED_GROUP_IS_PQC_HYBRID(), to fix
clang-diagnostic-unreachable-code-return in TLSX_DefaultGroupAllowed() (same
syndrome addressed by 5b73ce9 in #12072).

src/internal.c: fix leaks from AddPacketInfo() by calling FreeTimeoutInfo() in wolfSSL_ResourceFree().

also add .github/workflows/sanitizer-check.yml, which should catch defects in this class.

.wolfssl_known_macro_extras: GC

  tests/api/test_ssl_ext.c, .github/configs/os-check-linux.json:
fix -Wnull-dereferences in test_ech_decision_coverage(), masked in CI by
  dependence on WOLFSSL_TEST_STATIC_BUILD.

* Make SetEchConfigsEx(), GetEchConfig(), GetEchConfigsEx(), FreeEchConfigs(),
  and SetRetryConfigs(), callable from test coding using WOLFSSL_TEST_VIS and
  wolfSSL_local_ symbol prefixes, so that test_ech_decision_coverage() doesn't
  depend on defined(WOLFSSL_TEST_STATIC_BUILD).

* Also add statically-linked enable-all scenario in
  .github/configs/os-check-linux.json, to cover remaining tests that depend on
  defined(WOLFSSL_TEST_STATIC_BUILD).
…d clang-19-unreachable-all-crypto (-Wunreachable-code-aggressive coverage).
WOLFSSL_NAMED_GROUP_IS_PQC() and WOLFSSL_NAMED_GROUP_IS_PQC_HYBRID(), to fix
clang-diagnostic-unreachable-code-return in TLSX_DefaultGroupAllowed() (same
syndrome addressed by 5b73ce9 in wolfSSL#12072).
…Info() in wolfSSL_ResourceFree().

also add .github/workflows/sanitizer-check.yml, which should catch defects in this class.
Copilot AI balanced review requested due to automatic review settings November 10, 2026 22:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues remain for the ECH testing, resource cleanup, and CI coverage changes.

No open issues 🎉

What changed in this PR

This PR fixes test accessibility and resource cleanup in wolfSSL, while expanding CI coverage for static builds, compiler warnings, and sanitizer checks.

Changes:

  • Exposes ECH helpers to shared-library tests and guards against null dereferences in the ECH coverage test.
  • Frees timeout packet buffers during session cleanup and simplifies disabled-PQC macros to avoid Clang warning false positives.
  • Adds static-build, aggressive Clang warning, and sanitizer CI scenarios.
File Description
wolfssl/​internal.h Updates ECH helper visibility and simplifies disabled-PQC macros.
tests/​api/​test_ssl_ext.c Enables ECH coverage beyond static builds and guards null session access.
src/​tls.c Updates calls to renamed ECH helpers.
src/​ssl_ech.c Renames ECH helper definitions and call sites for test access.
src/​internal.c Frees timeout buffers and updates ECH cleanup helper names.
.wolfssl_known_macro_extras Removes the redundant WOLFSSL_CALLBACKS entry.
.github/​workflows/​sanitizer-check.yml Adds sanitizer checks with and without callback support.
.github/​workflows/​multi-compiler.yml Adds Clang 19 aggressive unreachable-code warning scenarios.
.github/​configs/​os-check-linux.json Adds an all-features static-only test scenario.

Review effort: Balanced

@github-actions

github-actions Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

MemBrowse Memory Report · Explore what changed →

zephyr-frdm_rw612

  • FLASH: datas +16 B, log_const_area -8 B, rodata +20 B, text +10,016 B (+3.6%, 292,508 B / 67,108,864 B, total: 0% used)
  • RAM: bss +49 B, datas +16 B (+0.1%, 58,423 B / 983,040 B, total: 6% used)

No memory changes detected for:


Catch memory regressions in CI with MemBrowse. Free for open source.

@wolfSSL-Fenrir-bot wolfSSL-Fenrir-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fenrir Automated Review — PR #12084

Scan targets checked: wolfssl-src, wolfssl-bugs
Not reviewed (no scan target covers them): .github/configs/os-check-linux.json, .github/workflows/multi-compiler.yml, .github/workflows/sanitizer-check.yml, .wolfssl_known_macro_extras
Coverage: 5 of 5 in-scope changed file(s) opened by the reviewer

Fenrir result: Approved ✅

No new issues found in the changed files.

Advisory only — this automated result does not count as a GitHub approval.

Review tier: Max

all-callbacks-sanitizer leg: WOLFSSL_QUIC is declared incompatible with
WOLFSSL_CALLBACKS (settings.h #error), and --enable-all enables QUIC, failing
early in configure's header-consistency check.
@douzzer

douzzer commented Nov 10, 2026

Copy link
Copy Markdown
Contributor Author

tested with

wolfssl-multi-test.sh ...
super-quick-check
all-crypto-openssl-extra-coexist-TEST_OPENSSL_COEXIST
all-crypto-openssl-extra-coexist-smallstack-TEST_OPENSSL_COEXIST
quantum-safe-wolfssl-all-gcc-latest-MLKEM_ENCAPSULATE_SMALL_MEM
linuxkm-defaults-all-fips-v5-clang-tidy
linuxkm-defaults-all-fips-v5-clang-tidy-noasm
linuxkm-defaults-all-fips-v6-clang-tidy
linuxkm-defaults-all-fips-v6-noasm-clang-tidy
cross-s390x-all-asm
cross-s390x-all-asm-fips-dev
all-WOLFSSL_CALLBACKS-sanitizer
clang-tidy-fips-140-3-defaults
clang-tidy-fips-140-3-all
clang-tidy-fips-140-3-pilot-defaults
clang-tidy-fips-140-3-pilot-all
clang-tidy-fips-140-3-v6-defaults
clang-tidy-fips-140-3-v6-all
clang-tidy-fips-140-3-v6-all-smallstack
all-crypto-only-allintelasm-fips-dev-linuxkm-next-insmod-optest
all-crypto-only-allintelasm-fips-dev-linuxkm-next-insmod-optest-fallback-fuzzer
all-crypto-only-allintelasm-fips-dev-linuxkm-next-insmod-optest-asm-force-on

@douzzer

douzzer commented Nov 11, 2026

Copy link
Copy Markdown
Contributor Author

retest this please

configure: error: in `/extend/var/lib/jenkins/workspace/PRB-generic-config-parser@8/wolfssl':
configure: error: C compiler cannot create executables

@philljj philljj self-assigned this Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants