Moe Charm (CI)
c2f104618f
Fix critical TLS drain memory leak causing potential double-free
## Root Cause
TLS drain was dropping pointers when SuperSlab lookup or slab_idx validation failed:
- Pop pointer from TLS SLL
- Lookup/validation fails
- continue → LEAK! Pointer never returned to any freelist
## Impact
Memory leak + potential double allocation:
1. Pointer P popped but leaked
2. Same address P reallocated from carve/other source
3. User frees P again → duplicate detection → ABORT
## Fix
**Before (BUGGY)**:
```c
if (!ss || invalid_slab_idx) {
continue; // ← LEAK!
}
```
**After (FIXED)**:
```c
if (!ss || invalid_slab_idx) {
// Push back to TLS SLL head (retry later)
tiny_next_write(class_idx, base, g_tls_sll[class_idx].head);
g_tls_sll[class_idx].head = base;
g_tls_sll[class_idx].count++;
break; // Stop draining to avoid infinite retry
}
```
## Files Changed
- core/box/tls_sll_drain_box.h: Fix 2 leak sites (SS lookup + slab_idx validation)
- docs/analysis/LARSON_DOUBLE_FREE_INVESTIGATION.md: Investigation report
## Related
- Larson double-free investigation (47% crash rate)
- Commit e4868bf23: Freelist header write + abort() on duplicate
- ChatGPT analysis: Larson benchmark code is correct (no user bug)
2025-11-27 06:49:38 +09:00
..
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-27 04:51:59 +09:00
2025-11-27 04:51:59 +09:00
2025-11-27 03:41:07 +09:00
2025-11-27 03:18:33 +09:00
2025-11-27 04:51:59 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-27 06:49:38 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-27 03:18:33 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 14:45:26 +09:00
2025-11-26 13:14:18 +09:00
2025-11-26 13:14:18 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-05 12:31:14 +09:00
2025-11-26 14:45:26 +09:00