Subj : src/sbbs3/smbutil.c To : Git commit to main/sbbs/master From : Rob Swindell (on Debian Linux) Date : Thu Sep 24 2026 21:22:49 https://gitlab.synchro.net/main/sbbs/-/commit/893817954cb42bd437b8c796 Modified Files: src/sbbs3/smbutil.c Log Message: smbutil pack: free the space of a message it drops When pack drops a message whose data it can't copy, or for which it can't allocate a header, the data space already allocated for it in the packed base was left allocated with nothing referencing it: blocks lost until the next pack. Both skip paths were added by aee485f478 (reducing-28-isle, 2026-09-15). Pack only appends to the new .sdt and .sda, so the dropped message's data is always the last allocation in each; pack_drop_dat() truncates both back to where it started. smb_freemsgdat() isn't usable mid-pack: it unlocks the SMB header pack holds, and it truncates smb.sdt_fp, which is the original data file being read. For data shared with an earlier index, the extra reference is now added only once the header is allocated, so a header failure leaves nothing to undo. Co-Authored-By: Claude Opus 5.5 (1M context) --- SBBSecho 3.37-Linux * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705) .