SHA256
1
0
forked from pool/coreutils
coreutils/coreutils-acl-nofollow.patch
Philipp Thomas 51dadaabd0 - Update to 8.14. Changes since 8.12:
Bug fixes:

  - ls --dereference no longer outputs erroneous "argetm" strings for
    dangling symlinks when an 'ln=target' entry is in $LS_COLORS.
    [bug introduced in fileutils-4.0]

  - ls -lL symlink once again properly prints "+" when the referent has
    an ACL.  [bug introduced in coreutils-8.13]

  - sort -g no longer infloops for certain inputs containing NaNs [bug
    introduced in coreutils-8.5]

  - chown and chgrp with the -v --from= options, now output the correct
    owner.  I.E.  for skipped files, the original ownership is output,
    not the new one.  [bug introduced in sh-utils-2.0g]

  - cp -r could mistakenly change the permissions of an existing
    destination directory.  [bug introduced in coreutils-6.8]

  - cp -u -p would fail to preserve one hard link for each up-to-date
    copy of a src-hard-linked name in the destination tree.  I.e., if
    s/a and s/b are hard-linked and dst/s/a is up to date, "cp -up s
    dst" would copy s/b to dst/s/b rather than simply linking dst/s/b
    to dst/s/a.  [This bug appears to have been present in "the
    beginning".]

  - fts-using tools (rm, du, chmod, chgrp, chown, chcon) no longer use
    memory proportional to the number of entries in each directory they
    process.  Before, rm -rf 4-million-entry-directory would consume
    about 1GiB of memory.  Now, it uses less than 30MB, no matter how
    many entries there are.  [this bug was inherent in the use of fts:
    thus, for rm the bug was introduced in coreutils-8.0.  The prior
    implementation of rm did not use as much memory.  du, chmod, chgrp
    and chown started using fts in 6.0.  chcon was added in
    coreutils-6.9.91 with fts support.  ]

  - pr -T no longer ignores a specified LAST_PAGE to stop at.  [bug
    introduced in textutils-1.19q]

  - printf '%d' '"' no longer accesses out-of-bounds memory in the
    diagnostic.  [bug introduced in sh-utils-1.16]

  - split --number l/... no longer creates extraneous files in certain
    cases.  [bug introduced in coreutils-8.8]

  - timeout now sends signals to commands that create their own process
    group.  timeout is no longer confused when starting off with a
    child process.  [bugs introduced in coreutils-7.0]

  - unexpand -a now aligns correctly when there are spaces spanning a
    tabstop, followed by a tab.  In that case a space was dropped,
    causing misalignment.  We also now ensure that a space never
    precedes a tab.  [bug introduced in coreutils-5.3.0]
  
  New features:

  - date now accepts ISO 8601 date-time strings with "T" as the
    separator.  It has long parsed dates like "2004-02-29 16:21:42"
    with a space between the date and time strings.  Now it also parses
    "2004-02-29T16:21:42" and fractional-second and time-zone-annotated
    variants like "2004-02-29T16:21:42.333-07:00"
  - md5sum accepts the new --strict option.  With --check, it makes the
    tool exit non-zero for any invalid input line, rather than just warning.
    This also affects sha1sum, sha224sum, sha384sum and sha512sum.

  - split accepts a new --filter=CMD option.  With it, split filters
    output through CMD.  CMD may use the $FILE environment variable,
    which is set to the nominal output file name for each invocation of
    CMD.  For example, to split a file into 3 approximately equal
    parts, which are then compressed:

    split -n3 --filter='xz > $FILE.xz' big

    Note the use of single quotes, not double quotes.  That creates
    files named xaa.xz, xab.xz and xac.xz.

  - timeout accepts a new --foreground option, to support commands not
    started directly from a shell prompt, where the command is
    interactive or needs to receive signals initiated from the
    terminal.

  Improvements:

  - md5sum --check now supports the -r format from the corresponding
    BSD tool.  This also affects sha1sum, sha224sum, sha384sum and
    sha512sum.

  - pwd now works also on systems without openat.  On such systems, pwd
    would fail when run from a directory whose absolute name contained
    more than PATH_MAX / 3 components.  The df, stat and readlink
    programs are also affected due to their use of the canonicalize_*
    functions.

  - join --check-order now prints "join: FILE:LINE_NUMBER: bad_line"
    for an unsorted input, rather than e.g., "join: file 1 is not in
    sorted order".

  - shuf outputs small subsets of large permutations much more
    efficiently.  For example `shuf -i1-$((2**32-1)) -n2` no longer
    exhausts memory.

  - stat -f now recognizes the GPFS, MQUEUE and PSTOREFS file system
    types.

  - timeout now supports sub-second timeouts.

  Changes in behavior:

  - chmod, chown and chgrp now output the original attributes in
    messages, when -v or -c specified.

  - cp -au (where --preserve=links is implicit) may now replace newer
    files in the destination, to mirror hard links from the source.

OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=128
2011-10-14 10:07:06 +00:00

88 lines
3.6 KiB
Diff

commit 95f7c57ff4090a5dee062044d2c7b99879077808
Author: Kamil Dudka <kdudka@redhat.com>
Date: Fri Jul 22 14:48:42 2011 +0200
file-has-acl: use acl_extended_file_nofollow if available
* lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE): New macro.
(acl_extended_file): New macro.
* lib/file-has-acl.c (file_has_acl): Use acl_extended_file_nofollow.
* m4/acl.m4 (gl_FUNC_ACL): Check for acl_extended_file_nofollow.
This addresses http://bugzilla.redhat.com/692823.
Index: lib/acl-internal.h
===================================================================
--- lib/acl-internal.h.orig 2011-10-05 17:31:39.000000000 +0200
+++ lib/acl-internal.h 2011-10-13 16:02:40.895813897 +0200
@@ -133,6 +133,12 @@ rpl_acl_set_fd (int fd, acl_t acl)
# endif
/* Linux-specific */
+# ifndef HAVE_ACL_EXTENDED_FILE_NOFOLLOW
+# define HAVE_ACL_EXTENDED_FILE_NOFOLLOW false
+# define acl_extended_file_nofollow(name) (-1)
+# endif
+
+/* Linux-specific */
# ifndef HAVE_ACL_FROM_MODE
# define HAVE_ACL_FROM_MODE false
# define acl_from_mode(mode) (NULL)
Index: lib/file-has-acl.c
===================================================================
--- lib/file-has-acl.c.orig 2011-10-05 17:31:39.000000000 +0200
+++ lib/file-has-acl.c 2011-10-13 16:02:40.895813897 +0200
@@ -454,12 +454,20 @@ file_has_acl (char const *name, struct s
/* Linux, FreeBSD, MacOS X, IRIX, Tru64 */
int ret;
- if (HAVE_ACL_EXTENDED_FILE) /* Linux */
+ if (HAVE_ACL_EXTENDED_FILE || HAVE_ACL_EXTENDED_FILE_NOFOLLOW) /* Linux */
{
+# if HAVE_ACL_EXTENDED_FILE_NOFOLLOW
+ /* acl_extended_file_nofollow() uses lgetxattr() in order to prevent
+ unnecessary mounts, but it returns the same result as we already
+ know that NAME is not a symbolic link at this point (modulo the
+ TOCTTOU race condition). */
+ ret = acl_extended_file_nofollow (name);
+# else
/* On Linux, acl_extended_file is an optimized function: It only
makes two calls to getxattr(), one for ACL_TYPE_ACCESS, one for
ACL_TYPE_DEFAULT. */
ret = acl_extended_file (name);
+# endif
}
else /* FreeBSD, MacOS X, IRIX, Tru64 */
{
Index: m4/acl.m4
===================================================================
--- m4/acl.m4.orig 2011-10-05 17:31:39.000000000 +0200
+++ m4/acl.m4 2011-10-13 16:02:40.895813897 +0200
@@ -33,7 +33,7 @@ AC_DEFUN([gl_FUNC_ACL],
AC_CHECK_FUNCS(
[acl_get_file acl_get_fd acl_set_file acl_set_fd \
acl_free acl_from_mode acl_from_text \
- acl_delete_def_file acl_extended_file \
+ acl_delete_def_file acl_extended_file acl_extended_file_nofollow \
acl_delete_fd_np acl_delete_file_np \
acl_copy_ext_native acl_create_entry_np \
acl_to_short_text acl_free_text])
Index: ChangeLog
===================================================================
--- ChangeLog.orig 2011-10-12 11:56:55.000000000 +0200
+++ ChangeLog 2011-10-13 16:04:55.772001787 +0200
@@ -751,6 +751,14 @@
MacOS X 10.7 has an fdatasync that is not declared, and is rumored to
be ineffective. (Bug#9141)
+2011-07-22 Kamil Dudka <kdudka@redhat.com>
+
+ file-has-acl: use acl_extended_file_nofollow if available
+ * lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE): New macro.
+ (acl_extended_file): New macro.
+ * lib/file-has-acl.c (file_has_acl): Use acl_extended_file_nofollow.
+ * m4/acl.m4 (gl_FUNC_ACL): Check for acl_extended_file_nofollow.
+
2011-07-20 Mike Frysinger <vapier@gentoo.org>
dircolors: add screen.Eterm terminal type