mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-27 10:54:40 +00:00
Suppress ACL ops if configured with --disable-acl
Without this patch, some ACL operations were suppressed, but not all. * src/fileio.c [!USE_ACL]: Do not include sys/acl.h. (Ffile_acl, Fset_file_acl) [!USE_ACL]: Return nil in this case.
This commit is contained in:
parent
1a9dbf52d1
commit
0a289d38b5
20
src/fileio.c
20
src/fileio.c
@ -36,7 +36,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
||||
#include <selinux/context.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ACL_SET_FILE
|
||||
#if USE_ACL && defined HAVE_ACL_SET_FILE
|
||||
#include <sys/acl.h>
|
||||
#endif
|
||||
|
||||
@ -2937,16 +2937,17 @@ Return nil if file does not exist or is not accessible, or if Emacs
|
||||
was unable to determine the ACL entries. */)
|
||||
(Lisp_Object filename)
|
||||
{
|
||||
#if USE_ACL
|
||||
Lisp_Object absname;
|
||||
Lisp_Object handler;
|
||||
#ifdef HAVE_ACL_SET_FILE
|
||||
# ifdef HAVE_ACL_SET_FILE
|
||||
acl_t acl;
|
||||
Lisp_Object acl_string;
|
||||
char *str;
|
||||
# ifndef HAVE_ACL_TYPE_EXTENDED
|
||||
# ifndef HAVE_ACL_TYPE_EXTENDED
|
||||
acl_type_t ACL_TYPE_EXTENDED = ACL_TYPE_ACCESS;
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
absname = expand_and_dir_to_file (filename,
|
||||
BVAR (current_buffer, directory));
|
||||
@ -2957,7 +2958,7 @@ was unable to determine the ACL entries. */)
|
||||
if (!NILP (handler))
|
||||
return call2 (handler, Qfile_acl, absname);
|
||||
|
||||
#ifdef HAVE_ACL_SET_FILE
|
||||
# ifdef HAVE_ACL_SET_FILE
|
||||
absname = ENCODE_FILE (absname);
|
||||
|
||||
acl = acl_get_file (SSDATA (absname), ACL_TYPE_EXTENDED);
|
||||
@ -2976,6 +2977,7 @@ was unable to determine the ACL entries. */)
|
||||
acl_free (acl);
|
||||
|
||||
return acl_string;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
return Qnil;
|
||||
@ -2993,13 +2995,14 @@ Setting ACL for local files requires Emacs to be built with ACL
|
||||
support. */)
|
||||
(Lisp_Object filename, Lisp_Object acl_string)
|
||||
{
|
||||
#if USE_ACL
|
||||
Lisp_Object absname;
|
||||
Lisp_Object handler;
|
||||
#ifdef HAVE_ACL_SET_FILE
|
||||
# ifdef HAVE_ACL_SET_FILE
|
||||
Lisp_Object encoded_absname;
|
||||
acl_t acl;
|
||||
bool fail;
|
||||
#endif
|
||||
# endif
|
||||
|
||||
absname = Fexpand_file_name (filename, BVAR (current_buffer, directory));
|
||||
|
||||
@ -3009,7 +3012,7 @@ support. */)
|
||||
if (!NILP (handler))
|
||||
return call3 (handler, Qset_file_acl, absname, acl_string);
|
||||
|
||||
#ifdef HAVE_ACL_SET_FILE
|
||||
# ifdef HAVE_ACL_SET_FILE
|
||||
if (STRINGP (acl_string))
|
||||
{
|
||||
acl = acl_from_text (SSDATA (acl_string));
|
||||
@ -3030,6 +3033,7 @@ support. */)
|
||||
acl_free (acl);
|
||||
return fail ? Qnil : Qt;
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
return Qnil;
|
||||
|
Loading…
Reference in New Issue
Block a user