From 1bfcec92426891f5bcde737a621a4bda74f3f87f Mon Sep 17 00:00:00 2001 From: Kimberly Wilber Date: Sat, 15 Aug 2020 12:09:41 -0400 Subject: [PATCH] [OSX] Fix "SIGILL: illegal instruction" on macOS Catalina on OSX, strncpy may copy to overlapping (protected) memory. this sometimes happens when loading WAD files. This patch eliminates these problems for me --- src/w_wad.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/w_wad.c b/src/w_wad.c index 7fd7ac12..77d0d6d2 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -150,7 +150,10 @@ FILE *W_OpenWadFile(const char **filename, boolean useerrors) { FILE *handle; - strncpy(filenamebuf, *filename, MAX_WADPATH); + if (filenamebuf != *filename) { + // avoid overlap + strncpy(filenamebuf, *filename, MAX_WADPATH); + } filenamebuf[MAX_WADPATH - 1] = '\0'; *filename = filenamebuf;