summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2016-06-17 21:41:36 -0700
committerMichael Forney <mforney@mforney.org>2016-06-17 21:41:36 -0700
commit4f1a3837c0aec14d3ac5db4e29da7462e7df1fe4 (patch)
tree070675d5d137259fe4686fb142c4805722db7027
parent24bbcc81132364886248d3398fa39247139a612d (diff)
perms-hook: Move special permission handling to defperm and rename to setperm
-rw-r--r--util/perms-hook.c20
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);