• Paul Eggert's avatar
    Fix permissions bugs with setgid directories etc. · 97976f9f
    Paul Eggert authored
    * configure.ac (BSD4_2): Remove; no longer needed.
    * admin/CPP-DEFINES (BSD4_2): Remove.
    * doc/lispintro/emacs-lisp-intro.texi (Files List):
    directory-files-and-attributes now outputs t for attribute that's
    now a placeholder.
    * doc/lispref/files.texi (Testing Accessibility): Document GROUP arg
    of file-ownership-preserved-p.
    (File Attributes): Document that 9th element is now
    just a placeholder.
    * doc/lispref/os.texi (User Identification): Document new functions group-gid,
    group-real-gid.
    * etc/NEWS: Document changes to file-attributes,
    file-ownership-preserved-p.
    Mention new functions group-gid, group-real-gid.
    * lisp/files.el (backup-buffer): Don't rely on 9th output of
    file-attributes, as it's now a placeholder.  Instead, use the new
    optional arg of file-ownership-preserved-p.
    (file-ownership-preserved-p): New optional arg GROUP.
    Fix mishandling of setuid directories that would cause this
    function to return t when it should have returned nil.
    Document what happens if the file does not exist, and when
    it's not known whether the ownership will be preserved.
    * lisp/net/tramp-sh.el (tramp-sh-handle-file-ownership-preserved-p):
    Likewise.
    (tramp-get-local-gid): Use group-gid for integer, as that's
    faster and more reliable.
    * src/dired.c (Ffile_attributes): Return t as the 9th attribute,
    to mark it as a placeholder.  The old value was often wrong.
    The only user of this attribute has been changed to use
    file-ownership-preserved-p instead, with its new group arg.
    * src/editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
    
    Fixes: debbugs:13125
    97976f9f
files.el 275 KB