diff options
| author | Michael Forney <mforney@mforney.org> | 2016-06-17 21:41:36 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2016-06-17 21:41:36 -0700 |
| commit | 4f1a3837c0aec14d3ac5db4e29da7462e7df1fe4 (patch) | |
| tree | 070675d5d137259fe4686fb142c4805722db7027 | |
| parent | 24bbcc81132364886248d3398fa39247139a612d (diff) | |
perms-hook: Move special permission handling to defperm and rename to setperm
| -rw-r--r-- | util/perms-hook.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/util/perms-hook.c b/util/perms-hook.c index 15ae8de8..4c388908 100644 --- a/util/perms-hook.c +++ b/util/perms-hook.c @@ -161,11 +161,19 @@ specialperms(void) } static void -defperm(const char *name) +setperm(const char *name) { + int i; struct stat st; mode_t mode; + for (i = 0; i < perms_len; ++i) { + if (strcmp(name, perms[i].name) == 0) { + if (!perms[i].applied) + specialperm(&perms[i]); + return; + } + } if (lstat(name, &st) < 0) die("lstat:"); if (st.st_dev != rootdev) @@ -194,7 +202,7 @@ readchanges(char *old, char *new) pid_t pid; char *line = NULL; size_t size = 0; - int i, st; + int st; f = spawn(old ? argv_diff : argv_new, &pid); nextline: @@ -203,13 +211,7 @@ nextline: specialperms(); continue; } - for (i = 0; i < perms_len; ++i) { - if (!perms[i].applied && strcmp(line, perms[i].name) == 0) { - specialperm(&perms[i]); - goto nextline; - } - } - defperm(line); + setperm(line); } fclose(f); |
