Jackapyun opened a new pull request, #18042:
URL: https://github.com/apache/nuttx/pull/18042

   ## Summary
   
   This PR addresses a critical stack overflow issue in the KASAN (Kernel 
Address Sanitizer) error reporting mechanism when the report handler 
recursively triggers additional KASAN checks.
   
   ### Problem
   When `kasan_report()` is executing and calls `_alert()` for error reporting, 
the logging function may trigger additional memory access operations that can 
fail KASAN checks. This causes recursive re-entry into the KASAN report 
handler, leading to stack overflow and suppressing the original error report.
   
   ### Solution
   The fix implements a dual-approach strategy:
   
   1. **Call `kasan_stop()` before reporting**: Halts all KASAN checks when 
entering the panic path, preventing recursive checks during error message 
printing
   2. **Reuse `dump_only` flag efficiently**: Consolidates the panic/non-panic 
decision logic into a single flag, ensuring consistent behavior without 
additional stack usage
   
   ### Key Changes
   - Extract `dump_only` flag calculation at the beginning of `kasan_report()` 
   - Call `kasan_stop()` only when panic reporting is needed (before `_alert()`)
   - Reuse the flag for both panic decision and stack dump logic
   
   ---
   
   ## Impact
   
   ### Stability
   - ✅ Eliminates stack overflow risk from recursive KASAN reports
   - ✅ Preserves original error reporting despite recursive triggers
   - ✅ Reduces stack memory usage in error paths
   
   ### Compatibility
   - ✅ No breaking API changes
   - ✅ No impact on non-KASAN builds
   - ✅ Maintains existing panic/dump behavior based on configuration
   
   ### Code Quality
   - ✅ Improves code maintainability by eliminating duplicate logic
   - ✅ Reduces code duplication in panic decision handling
   - ✅ Clear separation of concerns in error handling flow
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to