Revert r299576 and MFV r299895:
Revert r299576: Fix broken cpio behavior. MFV r299895: Update to vendor git commit 860ec63. MFC after: 3 weeks (together with libarchive 3.2.0) Fix broken cpio behavior in pass-through mode with vendor code.
This commit is contained in:
commit
c38ff13d6a
@ -156,7 +156,8 @@ See above for description.
|
||||
.It Fl Fl insecure
|
||||
(i and p mode only)
|
||||
Disable security checks during extraction or copying.
|
||||
This allows extraction via symbolic links and path names containing
|
||||
This allows extraction via symbolic links, absolute paths,
|
||||
and path names containing
|
||||
.Sq ..
|
||||
in the name.
|
||||
.It Fl J , Fl Fl xz
|
||||
|
@ -171,6 +171,7 @@ main(int argc, char *argv[])
|
||||
cpio->extract_flags |= ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER;
|
||||
cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_SYMLINKS;
|
||||
cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NODOTDOT;
|
||||
cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS;
|
||||
cpio->extract_flags |= ARCHIVE_EXTRACT_PERM;
|
||||
cpio->extract_flags |= ARCHIVE_EXTRACT_FFLAGS;
|
||||
cpio->extract_flags |= ARCHIVE_EXTRACT_ACL;
|
||||
@ -256,6 +257,7 @@ main(int argc, char *argv[])
|
||||
case OPTION_INSECURE:
|
||||
cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_SYMLINKS;
|
||||
cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT;
|
||||
cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS;
|
||||
break;
|
||||
case 'L': /* GNU cpio */
|
||||
cpio->option_follow_links = 1;
|
||||
@ -293,6 +295,7 @@ main(int argc, char *argv[])
|
||||
"Cannot use both -p and -%c", cpio->mode);
|
||||
cpio->mode = opt;
|
||||
cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT;
|
||||
cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS;
|
||||
break;
|
||||
case OPTION_PASSPHRASE:
|
||||
cpio->passphrase = cpio->argument;
|
||||
|
@ -401,6 +401,11 @@ archive_read_format_cpio_read_header(struct archive_read *a,
|
||||
|
||||
/* If this is a symlink, read the link contents. */
|
||||
if (archive_entry_filetype(entry) == AE_IFLNK) {
|
||||
if (cpio->entry_bytes_remaining > 1024 * 1024) {
|
||||
archive_set_error(&a->archive, ENOMEM,
|
||||
"Rejecting malformed cpio archive: symlink contents exceed 1 megabyte");
|
||||
return (ARCHIVE_FATAL);
|
||||
}
|
||||
h = __archive_read_ahead(a,
|
||||
(size_t)cpio->entry_bytes_remaining, NULL);
|
||||
if (h == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user