You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: free retrieval hint with libc free, not deallocShared (SIGSEGV)
The retrieval-hint provider (the Go binding's C.CBytes) allocates the
returned hint with malloc and hands us ownership. The hand-written hint
closure freed it with Nim's deallocShared, corrupting Nim's shared-heap
allocator and crashing with a SIGSEGV in deallocBigChunk/avltree.del once
wrapOutgoingMessage starts invoking the provider per causal-history entry.
Free it with libc free instead.
The hint provider is hand-written (a C function pointer has no JSON form
for nim-ffi to marshal), so this free is nim-sds's responsibility on every
line. Reproduced end-to-end via the C ABI on release/v0.3: buggy build
segfaults (exit 139), fixed build completes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments