From b0f160fc5ad44b843bb212462b1292004a3bebca Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Mon, 6 Apr 2026 14:06:35 -1000 Subject: [PATCH] SCP: Properly handle filebuf allocation and freeing during ATTACH and DETACH - avoid a memory leak under some conditions - avoid a segfault under some conditions --- doc/simh.doc | Bin 300544 -> 303104 bytes scp.c | 11 +++++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/simh.doc b/doc/simh.doc index e26e17f281077204960e4e91e78328a498d3b98a..9f6dd638d6cda94975b6cec1ed47825f42560cea 100644 GIT binary patch delta 53220 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�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 nV}18Vflags & UNIT_BUFABLE) { /* buffer? */ if (uptr->flags & UNIT_MUSTBUF) { /* dyn alloc? */ uptr->filebuf = calloc (cap, SZ_D (dptr)); /* allocate */ if (uptr->filebuf == NULL) { - free (uptr->filebuf); - uptr->filebuf = NULL; free (uptr->filebuf2); uptr->filebuf2 = NULL; return attach_err (uptr, SCPE_MEM); /* error */ @@ -9258,8 +9256,9 @@ if ((dptr->flags & DEV_TAPE) && ((dptr->flags & DEV_DISK) == 0)) return sim_tape_detach (uptr); if ((uptr->flags & UNIT_BUF) && (uptr->filebuf)) { uint32 cap = (uptr->hwmark + dptr->aincr - 1) / dptr->aincr; - if (((uptr->flags & UNIT_RO) == 0) && - (memcmp (uptr->filebuf, uptr->filebuf2, (size_t)(SZ_D (dptr) * (uptr->capac / dptr->aincr))) != 0)) { + if (((uptr->flags & UNIT_RO) == 0) && + ((uptr->filebuf2 == NULL) || + (memcmp (uptr->filebuf, uptr->filebuf2, (size_t)(SZ_D (dptr) * (uptr->capac / dptr->aincr))) != 0))) { sim_messagef (SCPE_OK, "%s: writing buffer to file: %s\n", sim_uname (uptr), sim_attach_name (uptr)); rewind (uptr->fileref); sim_fwrite (uptr->filebuf, SZ_D (dptr), cap, uptr->fileref); @@ -9269,9 +9268,9 @@ if ((uptr->flags & UNIT_BUF) && (uptr->filebuf)) { if (uptr->flags & UNIT_MUSTBUF) { /* dyn alloc? */ free (uptr->filebuf); /* free buffers */ uptr->filebuf = NULL; - free (uptr->filebuf2); - uptr->filebuf2 = NULL; } + free (uptr->filebuf2); + uptr->filebuf2 = NULL; uptr->flags = uptr->flags & ~UNIT_BUF; } uptr->flags = uptr->flags & ~(UNIT_ATT | ((uptr->flags & UNIT_ROABLE) ? UNIT_RO : 0));