From 613625e878d28ca14bb43f16b7d00c9d21897a3c Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Mon, 28 Dec 2020 10:26:45 -0800 Subject: [PATCH] SCP: Correct unit level debug logic to avoid potential segfault --- scp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scp.h b/scp.h index ebca12fd..70db641a 100644 --- a/scp.h +++ b/scp.h @@ -342,7 +342,7 @@ void sim_debug_unit (uint32 dbits, UNIT* uptr, const char *fmt, ...) GCC_FMT_ATT void _sim_debug_unit (uint32 dbits, UNIT *uptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4); void _sim_debug_device (uint32 dbits, DEVICE* dptr, const char* fmt, ...) GCC_FMT_ATTR(3, 4); #define sim_debug(dbits, dptr, ...) do { if ((sim_deb != NULL) && ((dptr) != NULL) && ((dptr)->dctrl & (dbits))) _sim_debug_device (dbits, dptr, __VA_ARGS__);} while (0) -#define sim_debug_unit(dbits, uptr, ...) do { if ((sim_deb != NULL) && ((uptr) != NULL) && (((uptr)->dctrl | (uptr)->dptr->dctrl) & (dbits))) _sim_debug_unit (dbits, uptr, __VA_ARGS__);} while (0) +#define sim_debug_unit(dbits, uptr, ...) do { if ((sim_deb != NULL) && ((uptr) != NULL) && (uptr->dptr != NULL) && (((uptr)->dctrl | (uptr)->dptr->dctrl) & (dbits))) _sim_debug_unit (dbits, uptr, __VA_ARGS__);} while (0) #endif void sim_flush_buffered_files (void);