diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/main.c b/src/main.c index 9fd97b23a5..828a6d5200 100644 --- a/src/main.c +++ b/src/main.c @@ -2130,14 +2130,13 @@ process_env ( */ static int file_owned(char *fname) { - struct stat s; uid_t uid = getuid(); - - return !(mch_stat(fname, &s) != 0 || s.st_uid != uid -# ifdef HAVE_LSTAT - || mch_lstat(fname, &s) != 0 || s.st_uid != uid -# endif - ); + FileInfo file_info; + bool file_owned = os_get_file_info(fname, &file_info) + && file_info.stat.st_uid == uid; + bool link_owned = os_get_file_info_link(fname, &file_info) + && file_info.stat.st_uid == uid; + return file_owned && link_owned; } #endif |