and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

This project is mirrored from git://git.sv.gnu.org/coreutils.git. Pull mirroring failed .
Last successful update .
  1. 30 Nov, 2016 3 commits
  2. 29 Nov, 2016 1 commit
    • Pádraig Brady's avatar
      tests: fix ERRORs and false FAILs on some platforms · a2bb7984
      Pádraig Brady authored
      * tests/misc/ls-time.sh: Skip the test rather than ERROR
      when `touch -m -d ...` fails (Hurd).
      * tests/tail-2/follow-stdin.sh: Avoid false FAILs by ignoring
      the variances in sterror output.
      * tests/rm/rm-readdir-fail.sh: Likewise.  Also avoid ERRORs
      on systems that don't define _D_EXACT_NAMELEN.
      a2bb7984
  3. 28 Nov, 2016 3 commits
    • Pádraig Brady's avatar
      head: fix processing of non-seekable input as seekable · 0655b86a
      Pádraig Brady authored
      * src/head.c (elide_tail_bytes_file): Ensure we don't use
      st_size unless we've previously used seek() to determine
      the CURRENT_POS in the seekable file.
      This was seen to cause issue on FreeBSD 11 when the pipe
      buffer was filled with `yes | head --lines=-0`, in which
      case st_size was 64KiB while ST_BLKSIZE() was 4KiB.
      Reported by Assaf Gordon.
      0655b86a
    • Kamil Dudka's avatar
      install,mkdir: fix handling of -DZ and -pZ, respectively · d8104265
      Kamil Dudka authored
      ... in the case where two or more directories nested in each other are
      created and each of them defaults to a different SELinux context.
      
      * src/install.c (make_ancestor): When calling defaultcon(), give it the
      same path that is given to mkdir().  The other path is not always valid
      wrt. current working directory.
      * src/mkdir.c (make_ancestor): Likewise.
      * NEWS: Mention the bug fix.
      
      Reported at https://bugzilla.redhat.com/1398913
      d8104265
    • Pádraig Brady's avatar
      tac: fix mem corruption when failing to read non seekable inputs · a39641cb
      Pádraig Brady authored
      This was detected with ASAN, but can also be seen without ASAN with:
        $ tac - - <&-
        tac: standard input: read error: Bad file descriptor
        *** Error in `tac': malloc(): memory corruption: 0x...
      
      * src/tac.c (copy_to_temp): Don't close our output stream on
      (possibly transient) output error, or on input error.
      (temp_stream): clearerr() on the stream about to be reused,
      to ensure future stream use is not impacted by transient errors.
      * tests/misc/tac-2-nonseekable.sh: Add a test case.
      * NEWS: Mention the bug fix.
      Fixes http://bugs.gnu.org/25041
      a39641cb
  4. 27 Nov, 2016 5 commits
  5. 26 Nov, 2016 3 commits
  6. 25 Nov, 2016 2 commits
    • Pádraig Brady's avatar
      tests: fix false failure on new ls test · 55f14d7a
      Pádraig Brady authored
      * tests/ls/quote-align.sh: Remove "total" line
      which can vary per file system depending on allocation.
      Reported by Assaf Gordon on OpenSolaris (5.11/5.10).
      55f14d7a
    • Pádraig Brady's avatar
      pr: fix read from invalid memory with tabs in separator · d91aeef0
      Pádraig Brady authored
      This was detected with:
        echo a > a; pr "-S$(printf "\t\t\t")" a -m a > /dev/null
      Resulting in ASAN triggering:
        ====================================================
        ERROR: AddressSanitizer: global-buffer-overflow
        READ of size 1 at 0x00000041b622 thread T0
          #0 0x40506a in print_sep_string ../src/pr.c:2241
          #1 0x407ec4 in read_line ../src/pr.c:2493
          #2 0x40985c in print_page ../src/pr.c:1802
          #3 0x40985c in print_files ../src/pr.c:1618
          #4 0x4036e0 in main ../src/pr.c:1136
      
      * src/pr.c (init_parameters): Ensure we only override the
      specified separator when it's a single tab, thus matching
      the calculated separator length.
      * tests/pr/pr-tests.pl: Add a test case.
      * NEWS: Mention the fix.
      d91aeef0
  7. 24 Nov, 2016 5 commits
    • Pádraig Brady's avatar
      ptx: fix an invalid heap reference with short --width · ca99c524
      Pádraig Brady authored
      * src/ptx.c (fix_output_parameters): Ensure line_width doesn't
      go negative, which can happen when the --width is less
      than the --gap-size.
      * tests/misc/ptx-overrun.sh: Add a test case that triggers
      with ASAN.  (Note the longer filename is needed to trigger).
      Fixes http://bugs.gnu.org/25011
      ca99c524
    • Bernhard Voelker's avatar
      doc: clarify that readlink's --quiet option is on by default · 19157e87
      Bernhard Voelker authored
      * src/readlink.c (usage): Mark the --quiet/--silent option as active
      by default.
      * doc/coreutils.texi (readlink invocation): Likewise.
      19157e87
    • Pádraig Brady's avatar
      tests: fix false failure with ASAN in rm-readdir-fail · 4258e97b
      Pádraig Brady authored
      * tests/rm/rm-readdir-fail.sh: ASAN correctly indicated
      that fts was writing to freed memory.  This was because
      we reused a single dirent in our readdir() test wrapper.
      Since fts was deallocating those dirents, we now get
      a new dirent for each call to our readdir wrapper.
      4258e97b
    • Pádraig Brady's avatar
      split: fix memory corruption during chunk extraction · 4954f79a
      Pádraig Brady authored
      ASAN reported this error for: split -n2/3 /dev/null
        ERROR: AddressSanitizer: negative-size-param: (size=-1)
        #0 0x7f0d4c36951d in __asan_memmove (/lib64/libasan.so.2+0x8d51d)
        #1 0x404e06 in memmove /usr/include/bits/string3.h:59
        #2 0x404e06 in bytes_chunk_extract src/split.c:988
        #3 0x404e06 in main src/split.c:1626
      
      Specifically there would be invalid memory access
      and subsequent processing if the chunk to be extracted
      was beyond the initial amount read from file (which is
      currently capped at 128KiB).  This issue is not in a
      released version, only being introduced in commit v8.25-4-g62e7af03
      
      * src/split.c (bytes_chunk_extract): The initial_read != SIZE_MAX
      should have been combined with && rather than ||, but also this
      condition is always true in this function so remove entirely.
      * tests/split/b-chunk.sh: Add a test case.
      
      Fixes http://bugs.gnu.org/25003
      4954f79a
    • Pádraig Brady's avatar
      tail: fix checking of remoteness when not using inotify · 68c5eecc
      Pádraig Brady authored
      In recent commit v8.25-93-g7fc7206b we used the f->remote flag
      which wasn't set in all cases.  This was detected with
      ASAN giving this error when reading f->remote;
        runtime error: load of value 190,
        which is not a valid value for type '_Bool'
      
      * src/tail.c (fremote): Query the system even without inotify.
      (recheck): Always set f->fremote for valid files.
      68c5eecc
  8. 23 Nov, 2016 4 commits
    • Jim Meyering's avatar
      build: avoid racy failure of "make -jN install" · 477a1e8e
      Jim Meyering authored
      Installing with -j2 or greater could result in a failure like
        /bin/sh: line 29: /P/bin/install: Permission denied
      when /P/bin/install specifies your PATH-selected install program.
      This would arise because we're using "install" to install all
      man/*.1 files, and that command would run concurrently with the one
      that installs "/P/bin/install" itself.  We would run this command:
      "src/ginstall src/ginstall /P/bin/install", and it would result
      in intervals during which the destination file does not exist,
      is empty or incomplete and not executable.  We addressed this
      problem long ago for installation of actual binaries by telling the
      installation rules to use our just-built bin/ginstall (only when not
      cross-compiling) rather than the PATH-resolved "install" program.
      This change is to do the same for those .1 files.
      * src/local.mk (INSTALL): Override automake's default of something
      like "INSTALL = /P/bin/install -c".
      (INSTALL_PROGRAM): Now that we set INSTALL, there is no longer any
      need to set this derived variable.  Its default definition,
      "INSTALL_PROGRAM = ${INSTALL}" does what we require.
      Improved by Eric Blake.
      477a1e8e
    • Bernhard Voelker's avatar
      maint: fix 'syntax-check' targets for VPATH builds · fb82445e
      Bernhard Voelker authored
      * cfg.mk (sc_gitignore_missing): Add $(srcdir) to .gitignore filename.
      (sc_gitignore_redundant): Likewise.
      fb82445e
    • Bernhard Voelker's avatar
      maint: add build-aux/ar-lib to .gitignore · d738921c
      Bernhard Voelker authored
      * .gitignore: Add entry for the above file which is created
      by  './bootstrap'.
      d738921c
    • Paul Eggert's avatar
      pr: fix integer overflow in buffer size calcs · 38286df5
      Paul Eggert authored
      Problem reported by Marcel Böhme (Bug#24996).
      * configure.ac (WERROR_CFLAGS): Avoid -Wtype-limits.
      * src/pr.c (col_sep_string): Now a const pointer.  All uses changed.
      (integer_overflow): New function.
      (separator_string, main, init_parameters, init_store_cols):
      Check for integer overflow.
      (align_column, read_line, print_stored): Avoid integer overflow.
      38286df5
  9. 22 Nov, 2016 8 commits
    • Bernhard Voelker's avatar
      comm: add --total option · b50a1513
      Bernhard Voelker authored
      * src/comm.c (total_option): Add bool variable for the new option.
      (TOTAL_OPTION): Add enum value.
      (long_options): Add array element for the new option.
      (usage): Document the new option here.
      (compare_files): Count the lines in total[3], and output the summary at
      the end.
      (main): Accept the new option.
      * doc/coreutils.texi (comm invocation): Document it.
      * tests/misc/comm.pl: Test it.  While at it, improve the test data
      to have 1 unique line in the first file, 2 unique lines in the second
      file, and 3 common lines.
      * NEWS (New Features): Mention the new option.
      
      Fixes http://bugs.gnu.org/24929
      b50a1513
    • Pádraig Brady's avatar
      all: update gnulib submodule to latest · 812877bf
      Pádraig Brady authored
      Also sync these copies with gnulib:
      * bootstrap: Sync missed part of AIX support.
      * tests/init.sh: Support compare_ on AIX.
      812877bf
    • Pádraig Brady's avatar
      tests: fix false failure with FreeBSD 11 multibyte quoting · 1d46419f
      Pádraig Brady authored
      * tests/misc/printf-quote.sh: FreeBSD 11 was seen to treat
      \u0378 as a printable character.  Therefore change to
      using the \u0081 C1 control character.  We use the UTF-8
      representation because our printf implementation explicitly
      disallows \u0081 as input.
      Reported by Assaf Gordon
      1d46419f
    • Pádraig Brady's avatar
      tests: fix false fails due to passing env vars to returns_ · 055b08ff
      Pádraig Brady authored
      On BSD /bin/sh it was seen that unexported env vars passed to
      returns_() would not be propagated to the wrapped command.
      
      * cfg.mk (sc_prohibit_env_returns): Add a syntax check to disallow.
      * tests/misc/csplit-io-err.sh: Rearrange to export vars in a subshell.
      * tests/rm/rm-readdir-fail.sh: Likewise.
      * tests/misc/nohup.sh: Export and unset vars around returns_.
      * tests/misc/printenv.sh: Likewise.
      Reported by Assaf Gordon
      055b08ff
    • Pádraig Brady's avatar
      tests: fix recent tail-2 test regressions · b572a286
      Pádraig Brady authored
      * tests/tail-2/pipe-f.sh: Avoid issue with readable
      directories on BSD systems.
      * tests/tail-2/retry.sh: Likewise.
      Reported by Assaf Gordon
      b572a286
    • Pádraig Brady's avatar
      ls: improve alignment of quoted names · 01971c0e
      Pádraig Brady authored
      This provides better alignment when some names are quoted,
      which also provides better indication that quotes are not
      part of the name.
      
      * src/ls.c (align_variable_outer_quotes): A new variable
      set when ls is aligning columns (not using -m, non-zero -w),
      and has a variable quoting style (shell, shell-escape, c-maybe).
      (quote_name_buf): Writes to buffer rather than FILE,
      taking care to avoid data copying if possible.  Refactored from...
      (quote_name): ...here.  This now manages the buffer passed
      to quote_name_buf() and outputs the padding, colors and name
      in the appropriate order, while managing the --dired offsets.
      (get_color_indicator): A new function to return the color sequence,
      refactored from...
      (print_color_indicator): ...here.  This now simply outputs.
      (print_dir): Refactor common parts to quote_name().
      (clear_files): Reset the flag indicating at least one
      file is quoted in the current directory.
      (needs_quoting): A new function to indicate at the scan stage
      whether a name needs quoting.  Called from...
      (gobble_file): ...here, until we find the first quoted file.
      (print_name_with_quoting): Mostly refactored to quote_name().
      * tests/ls/quote-align.sh: A new test for various output formats.
      * tests/local.mk: Reference the new test.
      * NEWS: Mention the improvement.
      01971c0e
    • Pádraig Brady's avatar
      b2sum: a new checksum utility with md5sum like interface · ea94589e
      Pádraig Brady authored
      Note we don't support the --algorithm option of the
      b2sum command in the external BLAKE2 project, as that
      was deemed too confusing for users.
      "BLAKE2b" was chosen as the default algorithm to use,
      which is single threaded but performs well on 64 bit.
      
      * src/blake2: CC0 source copied from external project.
      * cfg.mk[VC_LIST_ALWAYS_EXCLUDE_REGEX]: Exclude blake2/
      from syntax checks, make update-copyright, etc.
      * src/local.mk: Reference the sources for b2sum,
      and set the compilation flags.
      * doc/coreutils.texi (b2sum invocation): Reference the
      md5sum invocation node, and add descriptions of -l.
      * tests/misc/b2sum.sh: Add new test.
      * tests/local.mk: Reference new test.
      * AUTHORS: Add new binary.
      * README: Likewise.
      * build-aux/gen-lists-of-programs.sh: Likewise.
      * man/.gitignore: Likewise.
      * scripts/git-hooks/commit-msg: Likewise.
      * man/b2sum.x: New man page template.
      * man/local.mk: Reference new template.
      * src/.gitignore: Ignore new binaries.
      * src/blake2/.gitignore: Ignore new build atrifacts.
      * src/md5sum.c (usage): Describe the new -l option.
      * NEWS: Mention the new program.
      ea94589e
    • Jim Meyering's avatar
      maint: avoid "make distcheck" failure due to excess .deps directories · 373ba16f
      Jim Meyering authored
      * Makefile.am (my-distcheck): Remove all .deps directories before the
      recursive diff that searches for left-behind files.  Otherwise, with
      automake master (some time after v1.15), "make distcheck" would fail
      due to those directories being left behind after "make distclean".
      373ba16f
  10. 19 Nov, 2016 1 commit
    • Pádraig Brady's avatar
      cp: improve status message when omitting directories · f1799198
      Pádraig Brady authored
      * src/copy.h (cp_options): Add a new flag for install(1).
      * src/copy.c (copy_internal): For cp, also output remediation
      advice which also indicates why directories aren't copied by default.
      The message is unchanged for install(1).
      * src/cp.c (cp_option_init): Init install_mode to false.
      * src/mv.c (cp_option_init): Likewise.
      * src/install.c (cp_option_init): Init install_mode to true.
      * tests/install/basic-1.sh: Add a test case.
      * tests/cp/link-deref.sh: Adjust test case.
      Fixes http://bugs.gnu.org/24958
      f1799198
  11. 16 Nov, 2016 1 commit
  12. 15 Nov, 2016 2 commits
  13. 14 Nov, 2016 2 commits
    • Jim Meyering's avatar
      tests: use "returns_" rather than explicit comparison with "$?" · 4d4d8bcc
      Jim Meyering authored
      The previous "returns_"-using change failed to convert many
      uses of "$?".  Convert all but two of the remaining ones.
      * tests/ls/stat-vs-dirent.sh: Likewise.
      * tests/misc/head-write-error.sh: Likewise.
      * tests/misc/nice.sh: Likewise.
      * tests/misc/nohup.sh: Likewise.
      * tests/misc/stdbuf.sh: Likewise.
      * tests/misc/sync.sh: Likewise.
      * tests/tail-2/pid.sh: Likewise.
      * tests/tail-2/wait.sh: Likewise.
      Thanks to Bernhard Volker for spotting this.
      4d4d8bcc
    • Pádraig Brady's avatar
      all: reduce usage of proper_name_utf8() · eba871cd
      Pádraig Brady authored
      This reduces a standard coreutils install size by about 160K.
      
      * src/cat.c: Change to proper_name() which removes about 18K text.
      * src/cp.c: Likewise.
      * src/df.c: Likewise.
      * src/du.c: Likewise.
      * src/getlimits.c: Likewise.
      * src/realpath.c: Likewise.
      * src/split.c: Likewise.
      * src/stdbuf.c: Likewise.
      * src/timeout.c: Likewise.
      * src/truncate.c: Likewise.
      * src/local.mk: Remove -llibiconv from the above programs.
      * cfg.mk (sc_check-AUTHORS): Adjust to use factor(1).
      * AUTHORS: Adjust to use ASCII to satisfy sc_check-AUTHORS.
      eba871cd