- if(lstat(f, &s) < 0 && errno != ENOENT)
- {
- syslog(LOG_ERR, _("Couldn't stat `%s': %s"), f, strerror(errno));
- return 0;
- }
-
- if(errno == ENOENT)
- return 1;
-
- if(s.st_uid != geteuid())
- {
- syslog(LOG_ERR, _("`%s' is owned by UID %d instead of %d"),
- f, s.st_uid, geteuid());
- return 0;
- }
-
- if(S_ISLNK(s.st_mode))
- {
- syslog(LOG_WARNING, _("Warning: `%s' is a symlink"),
- f);
-
- if(readlink(f, l, MAXBUFSIZE) < 0)
- {
- syslog(LOG_ERR, _("Unable to read symbolic link `%s': %s"), f, strerror(errno));
- return 0;
- }
-
- f = l;
- goto check2;
- }
-
- if(s.st_mode & 0007)
- {
- /* Accessible by others */
- syslog(LOG_ERR, _("`%s' has unsecure permissions"),
- f);
- return 0;
- }
-
- return 1;
+ if(lstat(f, &s) < 0 && errno != ENOENT) {
+ logger(LOG_ERR, _("Couldn't stat `%s': %s"), f, strerror(errno));
+ return false;
+ }
+
+ if(errno == ENOENT)
+ return true;
+
+ if(s.st_uid != geteuid()) {
+ logger(LOG_ERR, _("`%s' is owned by UID %d instead of %d"),
+ f, s.st_uid, geteuid());
+ return false;
+ }
+
+ if(S_ISLNK(s.st_mode)) {
+ logger(LOG_WARNING, _("Warning: `%s' is a symlink"), f);
+
+ if(readlink(f, l, MAXBUFSIZE) < 0) {
+ logger(LOG_ERR, _("Unable to read symbolic link `%s': %s"), f,
+ strerror(errno));
+ return false;
+ }
+
+ f = l;
+ goto check2;
+ }
+
+ if(s.st_mode & 0007) {
+ /* Accessible by others */
+ logger(LOG_ERR, _("`%s' has unsecure permissions"), f);
+ return false;
+ }
+#endif
+
+ return true;