static int check_mkdir(const char *dir)
{
struct stat sbuf;
-
+
if ( stat(dir, &sbuf) )
{
if ( errno == ENOENT )
return 1;
}
}
- else if (S_ISDIR(sbuf.st_mode)) return 0;
- else {
+
+ if (!S_ISDIR(sbuf.st_mode))
+ {
dprintf(("[%d] %s: not a directory\n", getpid(),dir));
if (!debug) syslog(LOG_CRIT,"%s: not a directory",dir);
return 1;
}
+ if (access(dir, R_OK | W_OK))
+ {
+ dprintf(("[%d] %s: dircectory is not readable/writable\n", getpid(),dir));
+ if (!debug) syslog(LOG_CRIT,"%s: dircectory is not readable/writable",dir);
+ return 1;
+ }
+
+
return 0;
}