cpio: on unpack, limit filename length to 8k; shorten comment a bit
This commit is contained in:
parent
e18d21dda4
commit
ee1b3b1042
@ -178,19 +178,19 @@ static int cpio_o(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* GNU cpio (GNU cpio) 2.9 help (abridged):
|
/* GNU cpio 2.9 --help (abridged):
|
||||||
|
|
||||||
Main operation mode:
|
Modes:
|
||||||
-i, --extract Extract files from an archive
|
-i, --extract Extract files from an archive
|
||||||
-o, --create Create the archive
|
-o, --create Create the archive
|
||||||
-p, --pass-through Copy-pass mode (was ist das?!)
|
-p, --pass-through Copy-pass mode [was ist das?!]
|
||||||
-t, --list List the archive
|
-t, --list List the archive
|
||||||
|
|
||||||
Operation modifiers valid in any mode:
|
Options valid in any mode:
|
||||||
--block-size=SIZE I/O block size = SIZE * 512 bytes
|
--block-size=SIZE I/O block size = SIZE * 512 bytes
|
||||||
-B I/O block size = 5120 bytes
|
-B I/O block size = 5120 bytes
|
||||||
-c Use the old portable (ASCII) archive format
|
-c Use the old portable (ASCII) archive format
|
||||||
-C, --io-size=NUMBER I/O block size to the given NUMBER bytes
|
-C, --io-size=NUMBER I/O block size in bytes
|
||||||
-f, --nonmatching Only copy files that do not match given pattern
|
-f, --nonmatching Only copy files that do not match given pattern
|
||||||
-F, --file=FILE Use FILE instead of standard input or output
|
-F, --file=FILE Use FILE instead of standard input or output
|
||||||
-H, --format=FORMAT Use given archive FORMAT
|
-H, --format=FORMAT Use given archive FORMAT
|
||||||
@ -204,7 +204,7 @@ static int cpio_o(void)
|
|||||||
-W, --warning=FLAG Control warning display: 'none','truncate','all';
|
-W, --warning=FLAG Control warning display: 'none','truncate','all';
|
||||||
multiple options accumulate
|
multiple options accumulate
|
||||||
|
|
||||||
Operation modifiers valid only in --extract mode:
|
Options valid only in --extract mode:
|
||||||
-b, --swap Swap both halfwords of words and bytes of
|
-b, --swap Swap both halfwords of words and bytes of
|
||||||
halfwords in the data (equivalent to -sS)
|
halfwords in the data (equivalent to -sS)
|
||||||
-r, --rename Interactively rename files
|
-r, --rename Interactively rename files
|
||||||
@ -215,31 +215,29 @@ static int cpio_o(void)
|
|||||||
extract or list from FILE
|
extract or list from FILE
|
||||||
--only-verify-crc Verify CRC's, don't actually extract the files
|
--only-verify-crc Verify CRC's, don't actually extract the files
|
||||||
|
|
||||||
Operation modifiers valid only in --create mode:
|
Options valid only in --create mode:
|
||||||
-A, --append Append to an existing archive
|
-A, --append Append to an existing archive
|
||||||
-O FILE File to use instead of standard output
|
-O FILE File to use instead of standard output
|
||||||
|
|
||||||
Operation modifiers valid only in --pass-through mode:
|
Options valid only in --pass-through mode:
|
||||||
-l, --link Link files instead of copying them, when possible
|
-l, --link Link files instead of copying them, when possible
|
||||||
|
|
||||||
Operation modifiers valid in --extract and --create modes:
|
Options valid in --extract and --create modes:
|
||||||
--absolute-filenames Do not strip file system prefix components from
|
--absolute-filenames Do not strip file system prefix components from
|
||||||
the file names
|
the file names
|
||||||
--no-absolute-filenames Create all files relative to the current dir
|
--no-absolute-filenames Create all files relative to the current dir
|
||||||
|
|
||||||
Operation modifiers valid in --create and --pass-through modes:
|
Options valid in --create and --pass-through modes:
|
||||||
-0, --null A list of filenames is terminated by a NUL
|
-0, --null A list of filenames is terminated by a NUL
|
||||||
-a, --reset-access-time Reset the access times of files after reading them
|
-a, --reset-access-time Reset the access times of files after reading them
|
||||||
-I FILE File to use instead of standard input
|
-I FILE File to use instead of standard input
|
||||||
-L, --dereference Dereference symbolic links (copy the files
|
-L, --dereference Dereference symbolic links (copy the files
|
||||||
that they point to instead of copying the links)
|
that they point to instead of copying the links)
|
||||||
-R, --owner=[USER][:.][GROUP] Set owner of created files
|
-R, --owner=[USER][:.][GROUP] Set owner of created files
|
||||||
|
|
||||||
Operation modifiers valid in --extract and --pass-through modes:
|
Options valid in --extract and --pass-through modes:
|
||||||
-d, --make-directories Create leading directories where needed
|
-d, --make-directories Create leading directories where needed
|
||||||
-m, --preserve-modification-time
|
-m, --preserve-modification-time Retain mtime when creating files
|
||||||
Retain previous file modification times when
|
|
||||||
creating files
|
|
||||||
--no-preserve-owner Do not change the ownership of the files
|
--no-preserve-owner Do not change the ownership of the files
|
||||||
--sparse Write files with blocks of zeros as sparse files
|
--sparse Write files with blocks of zeros as sparse files
|
||||||
-u, --unconditional Replace all files unconditionally
|
-u, --unconditional Replace all files unconditionally
|
||||||
|
@ -37,6 +37,7 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle)
|
|||||||
/* There can be padding before archive header */
|
/* There can be padding before archive header */
|
||||||
data_align(archive_handle, 4);
|
data_align(archive_handle, 4);
|
||||||
|
|
||||||
|
//TODO: this function is used only here, make it static?
|
||||||
if (archive_xread_all_eof(archive_handle, (unsigned char*)cpio_header, 110) == 0) {
|
if (archive_xread_all_eof(archive_handle, (unsigned char*)cpio_header, 110) == 0) {
|
||||||
goto create_hardlinks;
|
goto create_hardlinks;
|
||||||
}
|
}
|
||||||
@ -61,6 +62,7 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle)
|
|||||||
file_header->mtime = mtime;
|
file_header->mtime = mtime;
|
||||||
file_header->size = size;
|
file_header->size = size;
|
||||||
|
|
||||||
|
namesize &= 0x1fff; /* paranoia: names can't be that long */
|
||||||
file_header->name = xzalloc(namesize + 1);
|
file_header->name = xzalloc(namesize + 1);
|
||||||
/* Read in filename */
|
/* Read in filename */
|
||||||
xread(archive_handle->src_fd, file_header->name, namesize);
|
xread(archive_handle->src_fd, file_header->name, namesize);
|
||||||
|
Loading…
Reference in New Issue
Block a user