diff --git a/src/sbbs3/load_cfg.c b/src/sbbs3/load_cfg.c index 61c69d880bb60fabb114d7f7d955beaeae08bae1..ee0ecb55f86c5b35c9528dff1c344e4e17a96b55 100644 --- a/src/sbbs3/load_cfg.c +++ b/src/sbbs3/load_cfg.c @@ -347,8 +347,11 @@ int md(const char* inpath) *p = '\0'; if(!isdir(path)) { - if(mkpath(path) != 0) - return errno; + if(mkpath(path) != 0) { + int result = errno; + if(!isdir(path)) // race condition: did another thread make the directory already? + return result; + } } return 0;