diff options
author | Tim Kientzle <kientzle@acm.org> | 2016-09-04 16:08:26 -0700 |
---|---|---|
committer | Tim Kientzle <kientzle@acm.org> | 2016-09-04 16:08:26 -0700 |
commit | f8d2cc0920e5287308a6164b63628c93443dcd25 (patch) | |
tree | 1b09843757d71dc17affd29e0244f3396aa8dcbc /libarchive/archive_acl.c | |
parent | a847b45528d7f5476380e31cc22ea6a5d85435bf (diff) | |
download | libarchive-f8d2cc0920e5287308a6164b63628c93443dcd25.tar.gz |
Test for PR#777: verify ACL reading during directory walks
This verifies the issue mentioned in Pull Request #777:
When using archive_read_disk to read a directory tree,
libarchive would attempt to read ACLs with the wrong
directory.
Diffstat (limited to 'libarchive/archive_acl.c')
-rw-r--r-- | libarchive/archive_acl.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libarchive/archive_acl.c b/libarchive/archive_acl.c index bf4b6104..d128920a 100644 --- a/libarchive/archive_acl.c +++ b/libarchive/archive_acl.c @@ -707,10 +707,11 @@ archive_acl_text_l(struct archive_acl *acl, int flags, if (r != 0) return (-1); *p++ = separator; - if (flags & ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID) + if (name == NULL || (flags & ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID)) { id = ap->id; - else + } else { id = -1; + } append_entry(&p, NULL, ap->tag, name, ap->permset, id); count++; |