diff options
| author | Jeremie Koenig <jk@jk.fr.eu.org> | 2010-08-13 19:05:14 +0200 |
|---|---|---|
| committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-08-18 01:29:39 +0200 |
| commit | 0e63733ee60d0b9fa56ec47bdb088d4b835ec217 (patch) | |
| tree | 28e28de36294492dcbeced89394cf46959cb5c0b | |
| parent | 7e0dc553966e9ac1d0506e8cce9ae3f4708f124b (diff) | |
Set an appropriate st_mode on symlinks.
* procfs_pid_files.c (update_pid_entries): When symlink_target is not NULL, set
st_size to the symlink length and st_mode to S_IFLNK | 0777.
| -rw-r--r-- | procfs_pid_files.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/procfs_pid_files.c b/procfs_pid_files.c index d44a2a22..26a0af33 100644 --- a/procfs_pid_files.c +++ b/procfs_pid_files.c @@ -49,7 +49,16 @@ update_pid_entries (struct procfs_dir *dir, const char *name, struct stat stat; memset (&stat, 0, sizeof stat); - stat->st_mode = S_IFREG | S_IRUSR | S_IRGRP | S_IROTH; + if (symlink_target) + { + stat.st_size = strlen (symlink_target); + stat.st_mode = S_IFLNK | 0777; + } + else + { + stat.st_size = 0; + stat.st_mode = S_IFREG | 0444; + } return update_entries_list (dir, name, &stat, timestamp, symlink_target); } |
