From b9fe6679b94e1bc4dafa6bc399685d9b11933b32 Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Windows 11)" <rob@synchro.net>
Date: Fri, 15 Nov 2024 16:43:34 -0800
Subject: [PATCH] Use sopen(... SH_DENYRW) for fmutex() instead of open()

O_EXCL doesn't appear to be working very reliably over Samba, so let's add
file locking to the equation.
---
 src/sbbs3/nopen.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/sbbs3/nopen.c b/src/sbbs3/nopen.c
index f6d196132f..aec9d4b504 100644
--- a/src/sbbs3/nopen.c
+++ b/src/sbbs3/nopen.c
@@ -129,7 +129,7 @@ bool fmutex(const char* fname, const char* text, long max_age, time_t* tp)
 				return false;
 		}
 	}
-	if((file=open(fname,O_CREAT|O_WRONLY|O_EXCL,DEFFILEMODE))<0)
+	if((file=sopen(fname, O_CREAT|O_WRONLY|O_EXCL, SH_DENYRW, DEFFILEMODE))<0)
 		return false;
 	if(text!=NULL)
 		result = write(file,text,strlen(text)) >= 0;
-- 
GitLab