summaryrefslogtreecommitdiffstats
path: root/bin/setfacl
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2006-06-09 16:09:26 +0000
committerkib <kib@FreeBSD.org>2006-06-09 16:09:26 +0000
commit7c17e7ced296d90871e97f75ac626eb4910f5a05 (patch)
tree48e980e98ccf5b2e538ff31b212cbe5b9078b460 /bin/setfacl
parent7b9c5e1df6503fe2de55b89754f8cf3cf2a1735a (diff)
downloadFreeBSD-src-7c17e7ced296d90871e97f75ac626eb4910f5a05.zip
FreeBSD-src-7c17e7ced296d90871e97f75ac626eb4910f5a05.tar.gz
Copy filename read from the stdin into the private buffer. Otherwise,
next read filename overwrite previous one, resulting in acl being applied only to the last name in the list. Submitted by: Oleg Lomaka <oleg.lomaka at gmail com> MFC after: 1 week Approved by: kan (mentor)
Diffstat (limited to 'bin/setfacl')
-rw-r--r--bin/setfacl/setfacl.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/bin/setfacl/setfacl.c b/bin/setfacl/setfacl.c
index e04feac..43a5545 100644
--- a/bin/setfacl/setfacl.c
+++ b/bin/setfacl/setfacl.c
@@ -109,6 +109,7 @@ main(int argc, char *argv[])
int local_error, carried_error, ch, i;
struct sf_file *file;
struct sf_entry *entry;
+ const char *fn_dup;
acl_type = ACL_TYPE_ACCESS;
carried_error = local_error = 0;
@@ -187,7 +188,10 @@ main(int argc, char *argv[])
while (fgets(filename, (int)sizeof(filename), stdin)) {
/* remove the \n */
filename[strlen(filename) - 1] = '\0';
- add_filename(filename);
+ fn_dup = strdup(filename);
+ if (fn_dup == NULL)
+ err(1, "strdup() failed");
+ add_filename(fn_dup);
}
} else
for (i = 0; i < argc; i++)
OpenPOWER on IntegriCloud