Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

20240806-debug-trace-errcodes-backtrace #7846

Merged

Conversation

douzzer
Copy link
Contributor

@douzzer douzzer commented Aug 7, 2024

add --enable-debug-trace-errcodes=backtrace.
* uses libbacktrace to enhance existing "ERR TRACE" messages with backtraces, rendered in same format as the sanitizers.
* adds wc_backtrace_render() and some related callbacks to wolfcrypt/src/logging.c.
* adds an overrideable WOLFSSL_DEBUG_BACKTRACE_RENDER_CLAUSE to the WC_ERR_TRACE() mechanism in wolfssl/wolfcrypt/error-crypt.h.

also: fixes for defects identified by cppcheck and clang-tidy on --enable-debug builds: null deref in tests/api.c:load_pem_key_file_as_der(), redundant declarations in wolfcrypt/benchmark/benchmark.c, and numerous unchecked XSNPRINTF()s in wolfcrypt/src/logging.c and src/internal.c.

tested with wolfssl-multi-test.sh ... all-gcc-debug-c99-backtrace cppcheck-all-debug-backtrace clang-tidy-all-debug-backtrace super-quick-check. (*-backtrace are new optional scenarios added to test this PR.)

note that use of this feature requires installation of libbacktrace into the build environment. autoreconf -fi && ./configure && make && sudo make install worked for me.

wolfcrypt/src/logging.c Outdated Show resolved Hide resolved
douzzer added 4 commits August 8, 2024 09:00
* uses libbacktrace to enhance existing "ERR TRACE" messages with backtraces, rendered in same format as the sanitizers.
* adds wc_backtrace_render() and some related callbacks to wolfcrypt/src/logging.c.
* adds an overrideable WOLFSSL_DEBUG_BACKTRACE_RENDER_CLAUSE to the WC_ERR_TRACE() mechanism in wolfssl/wolfcrypt/error-crypt.h.
…ebug builds: null deref in tests/api.c:load_pem_key_file_as_der(), redundant declarations in wolfcrypt/benchmark/benchmark.c, and numerous unchecked XSNPRINTF()s in wolfcrypt/src/logging.c and src/internal.c.
…Check) in wc_KyberKey_MakeKeyWithRandom() and wc_KyberKey_Decapsulate() added in d350ba6.
… a buffer error rather than silently failing; in wc_backtrace_render(), fix !WOLFSSL_MUTEX_INITIALIZER race mitigation code.
@douzzer douzzer force-pushed the 20240806-debug-trace-errcodes-backtrace branch from 755dfa1 to 24e34aa Compare August 8, 2024 15:49
@douzzer douzzer requested a review from SparkiDev August 8, 2024 15:50
@douzzer douzzer removed their assignment Aug 8, 2024
Copy link
Contributor

@bandi13 bandi13 left a comment

Choose a reason for hiding this comment

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

Seems to work for me now

@SparkiDev SparkiDev removed the request for review from wolfSSL-Bot August 8, 2024 23:44
@SparkiDev SparkiDev self-assigned this Aug 8, 2024
@SparkiDev SparkiDev merged commit 2a08d30 into wolfSSL:master Aug 8, 2024
122 checks passed
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.

4 participants