aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFiles
2018-12-01Fix sigfault when appending to archiveSergey Poznyakoff1
Bug reported by Ross Burton. See <http://lists.gnu.org/archive/html/bug-cpio/2018-11/msg00000.html> * src/util.c: Keep static copy of the buffer pointer; always assign it to file_hdr->c_name. Use x2realloc for memory management.
2018-06-21Fix man markupSergey Poznyakoff1
2017-04-14CVE-2016-2037 - 1 byte out-of-bounds writePavel Raiskup6
Ensure that cpio_safer_name_suffix always works with dynamically allocated buffer, and that it has size of at least 32 bytes. Then, any call to cpio_safer_name_suffix is safe (it requires at least 2 bytes in the buffer). Also ensure that c_namesize is always correctly initialized (by cpio_set_c_name) to avoid undefined behavior when reading file_hdr.c_namesize (previously happened for tar archives). References: http://www.mail-archive.com/bug-cpio@gnu.org/msg00545.html * src/copyin.c (query_rename): Drop the hack, as we now work with dynamically allocated buffer. Use cpio_set_c_name. (create_defered_links_to_skipped): Use cpio_set_c_name rather than manual assignment. (read_name_from_file): New function to avoid C&P. (read_in_old_ascii, read_in_new_ascii, read_in_binary): Use read_name_from_file. (process_copy_in): Initialize file_hdr.c_namesize. * src/copyout.c (process_copy_out): Use cpio_set_c_name. * src/cpiohdr.h (cpio_set_c_name): New prototype. * src/tar.c (read_in_tar_header): Use cpio_set_c_name. * src/util.c (cpio_set_c_name): New function to set file_hdr->c_name and c_namesize from arbitrary string. (cpio_safer_name_suffix): Some docs fixes. * tests/inout.at: Also test copy-in, and try various formats.
2017-02-06build: lint warnings in --device-independentPavel Raiskup1
Complements: 3945f9db44c935608caa5f0 * src/util.c (find_inode_val): Drop unused variable. (get_inode_and_dev): Function doesn't return any value, drop the return value in definition.
2017-01-02Update copyright yearsSergey Poznyakoff59
2016-11-10Fix the output of UTF8 file names in verbose mode.Sergey Poznyakoff4
* am/quoting.m4: New file. * configure.ac: Set default quoting style. * src/copyin.c (long_format): Use quotearg. (print_name_with_quoting): Remove. * src/extern.h (print_name_with_quoting): Remove proto.
2016-11-10Update docsSergey Poznyakoff2
* doc/cpio.texi: Prominently mention, that --absolute-file-names is the default. * doc/cpio.1: Likewise.
2016-11-10fix enable_mt configure logicMike Frysinger1
In the default case, the build_mt flag is not set. This leads to an error at configure time like: ./configure: line 26866: test: =: unary operator expected Change to use the variable name autoconf creates for us and quote it so we never get weird expansion errors.
2016-11-10Update the THANKS file.Sergey Poznyakoff1
2016-11-10Fix signed integer overflow - big block sizesgrajagandev3
2016-11-10Add test for signed integer overflowgrajagandev1
2016-11-10Fix out-of-bounds readSergey Poznyakoff1
* src/copyin.c (process_copy_in): Skip records with zero filename length.
2016-06-16bootstrap: fix bootstrap after clean clonePavel Raiskup3
* bootstrap.conf: Reintroduce changes added by c7e60954dc7945635194 and removed by cleanup in 0396591026410f9. * lib/Makefile.am: Honor the ^pax prefix. * po/POTFILES.in: Likewise.
2015-09-12Version 2.12release_2_12Sergey Poznyakoff3
2015-09-12Update docs, use gettext 0.19.6Sergey Poznyakoff58
2015-09-01Fix generation of manual directorySergey Poznyakoff3
* doc/Makefile.am: Change 'manual' goal. * doc/gendocs.sh: New file. * doc/gendocs_template: ps output is not built.
2015-09-01Remove not used filesSergey Poznyakoff4
* headers/Makefile.am: Remove. * headers/fnmatch.h: Remove. * Makefile.am: Update. * configure.ac: Update.
2015-09-01Include gnulib and paxutils as submodules.Sergey Poznyakoff11
* gnulib: New submodule. * paxutils: New submodule. * .gitignore: Updage * .gitmodules: Update * README-hacking: Update. * bootstrap: Install slightly modified version from the gnulib repo. * bootstrap.conf: Add paxutils-related stuff. * po/.gitignore: Update. * tests/symlink-bad-length.at: Fix expected output. * src/copyin.c: Tiny change. * src/util.c: Likewise.
2014-12-11Fix symlink-bad-length test for 64-bit architectures.Sergey Poznyakoff2
* src/util.c: Return non-zero exit code if EOF is hit prematurely. * tests/symlink-bad-length.at: Revert to original archive: there's no use testing for recovery, because that depends on the host architecture. Don't test for exit code as well (same reason). Account for eventual warning messages.
2014-12-11Fix error recovery in copy-in modeSergey Poznyakoff2
* src/copyin.c (copyin_link): Fix null dereference. (read_in_header): Fix error recovery (bug introduced by 27e0ae55). * tests/symlink-bad-length.at: Test error recovery. Catch various architecture-dependent error messages (suggested by Pavel Raiskup).
2014-12-02Fix typoSergey Poznyakoff1
2014-12-01BugfixSergey Poznyakoff2
* src/copyin.c (get_link_name): Fix range checking. * tests/symlink-bad-length.at: Change expected error message.
2014-12-01Fix memory overrun on reading improperly created link records.Sergey Poznyakoff5
See http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html * src/copyin.c (get_link_name): New function. (list_file, copyin_link): use get_link_name * tests/symlink-bad-length.at: New file. * tests/symlink-long.at: New file. * tests/Makefile.am: Add new files. * tests/testsuite.at: Likewise.
2014-12-01New options to create device and inode-independent archives.Sergey Poznyakoff7
* src/util.c (inode_val): New member trans_inode (find_inode_val): New function. (find_inode_file): Rewrite using the above. (add_inode): Initialize the trans_inode member depending on the value of renumber_inodes_option. (get_inode_and_dev): New function. (stat_to_cpio): Use get_inode_and_dev. (arf_stores_inode_p): New function. * src/extern.h (renumber_inodes_option) (ignore_devno_option): New externs. * src/global.c (renumber_inodes_option) (ignore_devno_option): New variables. * src/main.c: Add new options. * NEWS: Document changes. * doc/cpio.1: Document new options. * doc/cpio.texi: Likewise.
2014-01-31Fix package name recognition in bootstrap.Sergey Poznyakoff1
The script logic failed if AC_INIT was split among two lines. Reported by Pavel. * bootstrap (extract_package_name): Rewrite as m4 script to allow for multiline AC_INIT.
2014-01-30Update copyright years.Sergey Poznyakoff51
2014-01-30Treat UID/GID as numeric if prefixed by + (-R option)Sergey Poznyakoff4
The IDs supplied with the -R option are treated as numeric (without looking them up in the system database), when prefixed with +. This allows to force using numeric value if a user (group) with a numeric name exists in the database. Reported by Joshua Briefman <sirgatez@gmail.com>. * src/userspec.c (parse_user_spec): Use + as an indicator of a numeric UID/GID. * doc/cpio.1: Document changes. * doc/cpio.texi: Likewise.
2014-01-30Use exit codes consistenly.Sergey Poznyakoff4
2014-01-30Improve documentation.Sergey Poznyakoff6
* .gitignore: Update. * NEWS: Update. * doc/cpio.1: Rewrite. * doc/cpio.texi: Major revamp. * src/main.c (options): Fix sectioning of the help output. (parse_opt): * src/util.c: Use PAXEXIT_FAILURE to indicate an error.
2014-01-28Distribute rmt.8; update build systemSergey Poznyakoff10
* NEWS: Update. * bootstrap (gnulib_extra_files): Remove "missing" * configure.ac: Do not distribute shar archive. Define CPIO_MT_COND * doc/Makefile.am: Always install manpages (mt.1 and rmt.8 -- depending on whether the corresponding programs are built). * doc/cpio.1: Update. * doc/mt.1: Update. * lib/Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. * src/Makefile.am: Likewise. * tests/Makefile.am: Likewise.
2012-02-20Always use 32 bit CRCSergey Poznyakoff5
* src/cpiohdr.h (cpio_file_stat) <c_chksum>: Change type to uint32_t. * src/extern.h (crc): Change type to uint32_t. * src/global.c: Likewise. * src/copyout.c (read_for_checksum): Return uint32_t. * src/copyin.c: Fix printf formats.
2011-09-19Fix error handling in disk_empty_output_buffer and sparse_writeSergey Poznyakoff4
* src/extern.h (delayed_seek_count): Remove. (disk_empty_output_buffer): Change signature. * src/util.c (disk_empty_output_buffer): Take two arguments. Correctly handle partial writes (errno is not meaningful). (delayed_seek_count): Remove variable. (sparse_write): Change return type and signature. Rewrite. Return number actual number of bytes written or -1 on error. Check returns from lseek and write. * src/copyin.c (copyin_regular_file): Call disk_empty_output_buffer with flush=true before closing the file. * src/copypass.c (process_copy_pass): Likewise.
2011-09-19Minor fixes.Sergey Poznyakoff5
* configure.ac: Use gettext 0.18 * doc/.gitignore: Add parse-datetime.texi. * lib/Makefile.am (libpax_a_SOURCES): Add exit-status.c * src/copyin.c (read_pattern_file): Use open_fatal if opening pattern file failed. * src/util.c (set_file_times): Use fdutimens.
2010-08-09Bugfixes.Sergey Poznyakoff2
* gnulib.modules: Add getline, required by rmt. * src/mt.c (fatal_exit): Change exit code to MT_EXIT_FAILURE.
2010-07-23Fix setstat testcases to work on Darwin.Sergey Poznyakoff2
* tests/setstat01.at: Set write permission on the directory before attempting to rename it. * tests/setstat02.at: Likewise.
2010-07-23Housekeeping.Sergey Poznyakoff3
* .gitignore: Sort. * src/cpiohdr.h: Fix indentation of preprocessor statements. * src/filetypes.h: Likewise.
2010-07-23Improve handling of -D in copy-pass mode.Sergey Poznyakoff2
* gnulib.modules: Add xgetcwd. * src/copypass.c (process_copy_pass): Convert directory_name to absolute if -D option was given.
2010-07-22Fix bootstrapping.Sergey Poznyakoff1
* bootstrap (symlink_to_dir): Fix symlink calculation.
2010-07-22Minor fix.Sergey Poznyakoff1
* src/filetypes.h: Remove declarations of stat and lstat.
2010-07-22Minor fixes.Sergey Poznyakoff2
* src/copyout.c (count_defered_links_to_dev_ino): Return size_t. (last_link): Do not use superfluous local variable. * src/util.c (copy_files_disk_to_tape) (copy_files_disk_to_disk): Shut down gcc warnings.
2010-07-22Minor changesSergey Poznyakoff4
* .gitignore: Update. * am/.gitignore: New file. * src/.gitignore: Add .gdbinit. * tests/symlink-to-stdout.at: Fix keywords.
2010-07-22Provide a tar-like --directory (-D) option.Sergey Poznyakoff8
* src/copyin.c (process_copy_in): Call change_dir. * src/copyout.c (process_copy_out): Likewise. * src/copypass.c (process_copy_pass): Likewise. * src/extern.h (change_directory_option): New extern. (change_dir): New proto. * src/global.c (change_directory_option): New global. * src/main.c (options): New option --directory. (parse_opt): Handle the --directory option. * src/util.c (change_dir): New proto. * doc/cpio.texi: Document the --directory option.
2010-07-22Fix --to-stdout option supportDmitry V. Levin4
* src/copyin.c (copyin_link): Skip an appropriate number of bytes when to_stdout_option flag is set. * tests/symlink-to-stdout.at: New test case. * tests/Makefile.am (TESTSUITE_AT): Add symlink-to-stdout.at. * tests/testsuite.at: Include symlink-to-stdout.at.
2010-03-10Version 2.11release_2_11Sergey Poznyakoff2
* configure.ac, NEWS: Raise version number.
2010-03-10Bugfixes.Sergey Poznyakoff2
* src/main.c (cpio_options): Remove unused options. * src/util.c (cpio_create_dir): Fix conditional. * NEWS: Update.
2010-02-12Use same code when creating directories in copy-in and copy-pass modes.Sergey Poznyakoff11
* src/copyin.c (copyin_mkdir): Remove. (copyin_directory): Remove. (copyin_file): Use cpio_create_dir instead of copyin_directory. * src/copypass.c (process_copy_pass): Use cpio_create_dir to create directories. * src/extern.h (delay_cpio_set_stat): New proto. * src/util.c (delay_cpio_set_stat): New function. (delay_set_stat): Rewrite as a wrapper to the above. (cpio_create_dir): New function. * tests/setstat01.at: Fix testcase. * tests/setstat02.at: Likewise. * tests/setstat03.at: New testcase. * tests/setstat04.at: New testcase. * tests/setstat05.at: New testcase. * tests/Makefile.am: Add new testcases. * tests/testsuite.at: Likewise.
2010-02-11Fix inode number typing.Sergey Poznyakoff5
* src/copyin.c (create_defered_links): Use ino_t for inode numbers. (create_defered_links_to_skipped): Likewise. (process_copy_in): Add typecast to inode fprintf argument. * src/copyout.c (count_defered_links_to_dev_ino) (writeout_other_defers): Use ino_t for inode numbers. * src/copypass.c (link_to_maj_min_ino): Likewise. * src/util.c (struct inode_val): Likewise. (find_inode_file, add_inode): Likewise. * src/extern.h (link_to_maj_min_ino) (find_inode_file, add_inode): Change signature.
2010-02-11Improve configuration suite.Sergey Poznyakoff4
* configure.ac: Raise version number to 2.10.91. Require autotools 2.63/1.11.1. Create shar archive. Enable silent rules by default. * Makefile.am (AUTOMAKE_OPTIONS): Remove. * lib/Makefile.am (rmt-command.h): Silent rule. * NEWS: Update.
2010-02-11Update copyright years.Sergey Poznyakoff49
2009-07-31Delay setting directory attributes until end of run, if they do not permit ↵Sergey Poznyakoff8
writing. Fix debian bug #458079. * src/copyin.c (copyin_mkdir): New function. (copyin_directory): Use copyin_mkdir to create directory. Call set_perms only when safe, otherwise use repair_delayed_set_stat. * src/extern.h (cpio_to_stat): New prototype. (repair_delayed_set_stat): Change prototype. * src/util.c (cpio_to_stat): New function. (repair_delayed_set_stat): New function. * tests/setstat01.at: New test case. * tests/setstat02.at: New test case. * tests/Makefile.am (TESTSUITE_AT): Add setstat01.at and setstat02.at * tests/testsuite.at: Include setstat01.at and setstat02.at. * NEWS: Update.

Return to:

Send suggestions and report system problems to the System administrator.