Hi,
the last umask(0) call to get the actual umask if you specify one in the smsd.conf file resets the umask to "0", means everything is world writeable. umask(0) does not have any special meaning to get only the current value back.
--- src/smsd_cfg.c
+++ src/smsd_cfg.c 2010/06/10 10:09:45
@@ -2464,7 +2464,7 @@
else
{
umask(conf_umask);
- mode = umask(0);
+ mode = umask(conf_umask);
}
m = 0666 & ~mode;