[newlib-cygwin/topic/posix_acl_funcs] Implement POSIX.1e ACL functions
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=f94d912d57ab0991e5abc582c264ad50caa6f590 commit f94d912d57ab0991e5abc582c264ad50caa6f590 Author: Corinna Vinschen Date: Wed Jan 6 18:41:36 2016 +0100 Implement POSIX.1e ACL functions * Makefile.in (DLL_OFILES): Add sec_posixacl.o. (SUBLIBS): Add libacl.a (libacl.a): New rule to create libacl.a. * common.din: Export POSIX ACL functions as well as most libacl.a extensions. * fhandler.h (fhander_base::acl_get): New prototype. (fhander_base::acl_set): Ditto. (fhandler_disk_file::acl_get): Ditto. (fhandler_disk_file::acl_set): Ditto. * include/acl/libacl.h: New file. * include/cygwin/version.h: Bump API minor version. * include/sys/acl.h: Drop including cygwin/acl.h. Accommodate throughout Cygwin. Add POSIX ACL definitions. * sec_acl.cc: Include sec_posixacl.h. Replace ILLEGAL_UID and ILLEGAL_GID with ACL_UNDEFINED_ID where sensible. (__aclcheck): New internal acl check function to be used for Solaris and POSIX ACLs. (aclcheck32): Call __aclcheck. (__aclcalcmask): New function to compute ACL_MASK value. (__aclsort): New internal acl sort function to be used for Solaris and POSIX ACLs. (aclsort32): Call __aclsort. (permtostr): Work directly on provided buffer. (__acltotext): New internal acltotext function to be used for Solaris and POSIX ACLs. (acltotext32): Call __acltotext. (__aclfromtext): New internal aclfromtext function to be used for Solaris and POSIX ACLs. (aclfromtext32): Call __aclfromtext. * sec_posixacl.cc: New file implemeting POSIX ACL functions. * sec_posixacl.h: New internal header. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/Makefile.in |6 +- winsup/cygwin/common.din | 39 ++ winsup/cygwin/fhandler.cc |2 +- winsup/cygwin/fhandler.h |5 + winsup/cygwin/fhandler_disk_file.cc|2 +- winsup/cygwin/fhandler_socket.cc |2 +- winsup/cygwin/fhandler_tty.cc |2 +- winsup/cygwin/fhandler_virtual.cc |2 +- winsup/cygwin/include/acl/libacl.h | 55 ++ winsup/cygwin/include/cygwin/version.h |3 +- winsup/cygwin/include/sys/acl.h| 85 ++- winsup/cygwin/sec_acl.cc | 768 +++ winsup/cygwin/sec_helper.cc|2 +- winsup/cygwin/sec_posixacl.cc | 1052 winsup/cygwin/sec_posixacl.h | 68 +++ winsup/cygwin/security.cc |2 +- winsup/utils/getfacl.c |3 +- winsup/utils/setfacl.c |3 +- 18 files changed, 1825 insertions(+), 276 deletions(-) diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in index 271a5be..fac9b3e 100644 --- a/winsup/cygwin/Makefile.in +++ b/winsup/cygwin/Makefile.in @@ -267,6 +267,7 @@ DLL_OFILES:= \ sec_acl.o \ sec_auth.o \ sec_helper.o \ + sec_posixacl.o \ security.o \ select.o \ sem.o \ @@ -443,7 +444,7 @@ endif API_VER:=$(srcdir)/include/cygwin/version.h LIB_NAME:=libcygwin.a -SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a +SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a libacl.a EXTRALIBS:=libautomode.a libbinmode.a libtextmode.a libtextreadmode.a INSTOBJS:=automode.o binmode.o textmode.o textreadmode.o TARGET_LIBS:=$(LIB_NAME) $(CYGWIN_START) $(GMON_START) $(LIBGMON_A) $(SUBLIBS) $(INSTOBJS) $(EXTRALIBS) @@ -643,6 +644,9 @@ libresolv.a: ${LIB_NAME} minires.o librt.a: ${LIB_NAME} posix_ipc.o ${speclib} ${@F} +libacl.a: ${LIB_NAME} sec_posixacl.o + ${speclib} ${@F} + ${EXTRALIBS}: lib%.a: %.o $(AR) cru $@ $? diff --git a/winsup/cygwin/common.din b/winsup/cygwin/common.din index d7f4d24..afb81f6 100644 --- a/winsup/cygwin/common.din +++ b/winsup/cygwin/common.din @@ -117,6 +117,45 @@ accept = cygwin_accept SIGFE accept4 SIGFE access SIGFE acl SIGFE +acl_add_perm NOSIGFE +acl_calc_mask SIGFE +acl_check NOSIGFE +acl_clear_perms NOSIGFE +acl_cmp SIGFE +acl_copy_entry NOSIGFE +acl_copy_ext NOSIGFE +acl_copy_int NOSIGFE +acl_create_entry SIGFE +acl_delete_def_file SIGFE +acl_delete_entry NOSIGFE +acl_delete_perm NOSIGFE +acl_dup SIGFE +acl_entries NOSIGFE +acl_equiv_mode SIGFE +acl_error NOSIGFE +acl_extended_fd SIGFE +acl_extended_file SIGFE +acl_extended_file_nofollow SIGFE +acl_free SIGFE +acl_from_mode NOSIGFE +acl_from_text SIGFE +acl_get_entry NOSIGFE +acl_get_fd SIGFE +acl_get_file SIGFE +acl_get_perm NOSIGFE +acl_get_permset NOSIGFE +acl_get_qualifier SIGFE +acl_get_tag_type NOSIGFE +acl_init SIGFE +acl_set_fd SIGFE +acl_set_file SIGFE +acl_set_permset NOSIGFE +acl_set_q
[newlib-cygwin/topic/posix_acl_funcs] Implement POSIX.1e ACL functions
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=aaf0a01cb7f1ce0412fa6738a2c1c9325e11d2ae commit aaf0a01cb7f1ce0412fa6738a2c1c9325e11d2ae Author: Corinna Vinschen Date: Wed Jan 6 18:41:36 2016 +0100 Implement POSIX.1e ACL functions * Makefile.in (DLL_OFILES): Add sec_posixacl.o. (SUBLIBS): Add libacl.a (libacl.a): New rule to create libacl.a. * common.din: Export POSIX ACL functions as well as most libacl.a extensions. * fhandler.h (fhander_base::acl_get): New prototype. (fhander_base::acl_set): Ditto. (fhandler_disk_file::acl_get): Ditto. (fhandler_disk_file::acl_set): Ditto. * include/acl/libacl.h: New file. * include/cygwin/version.h: Bump API minor version. * include/sys/acl.h: Drop including cygwin/acl.h. Accommodate throughout Cygwin. Add POSIX ACL definitions. * sec_acl.cc: Include sec_posixacl.h. Replace ILLEGAL_UID and ILLEGAL_GID with ACL_UNDEFINED_ID where sensible. (__aclcheck): New internal acl check function to be used for Solaris and POSIX ACLs. (aclcheck32): Call __aclcheck. (__aclcalcmask): New function to compute ACL_MASK value. (__aclsort): New internal acl sort function to be used for Solaris and POSIX ACLs. (aclsort32): Call __aclsort. (permtostr): Work directly on provided buffer. (__acltotext): New internal acltotext function to be used for Solaris and POSIX ACLs. (acltotext32): Call __acltotext. (__aclfromtext): New internal aclfromtext function to be used for Solaris and POSIX ACLs. (aclfromtext32): Call __aclfromtext. * sec_posixacl.cc: New file implemeting POSIX ACL functions. * sec_posixacl.h: New internal header. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/Makefile.in |6 +- winsup/cygwin/common.din | 39 ++ winsup/cygwin/fhandler.cc |2 +- winsup/cygwin/fhandler.h |5 + winsup/cygwin/fhandler_disk_file.cc|2 +- winsup/cygwin/fhandler_socket.cc |2 +- winsup/cygwin/fhandler_tty.cc |2 +- winsup/cygwin/fhandler_virtual.cc |2 +- winsup/cygwin/include/acl/libacl.h | 55 ++ winsup/cygwin/include/cygwin/version.h |3 +- winsup/cygwin/include/sys/acl.h| 85 ++- winsup/cygwin/sec_acl.cc | 768 +++ winsup/cygwin/sec_helper.cc|2 +- winsup/cygwin/sec_posixacl.cc | 1052 winsup/cygwin/sec_posixacl.h | 68 +++ winsup/cygwin/security.cc |2 +- winsup/utils/getfacl.c |3 +- winsup/utils/setfacl.c |3 +- 18 files changed, 1825 insertions(+), 276 deletions(-) diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in index 271a5be..fac9b3e 100644 --- a/winsup/cygwin/Makefile.in +++ b/winsup/cygwin/Makefile.in @@ -267,6 +267,7 @@ DLL_OFILES:= \ sec_acl.o \ sec_auth.o \ sec_helper.o \ + sec_posixacl.o \ security.o \ select.o \ sem.o \ @@ -443,7 +444,7 @@ endif API_VER:=$(srcdir)/include/cygwin/version.h LIB_NAME:=libcygwin.a -SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a +SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a libacl.a EXTRALIBS:=libautomode.a libbinmode.a libtextmode.a libtextreadmode.a INSTOBJS:=automode.o binmode.o textmode.o textreadmode.o TARGET_LIBS:=$(LIB_NAME) $(CYGWIN_START) $(GMON_START) $(LIBGMON_A) $(SUBLIBS) $(INSTOBJS) $(EXTRALIBS) @@ -643,6 +644,9 @@ libresolv.a: ${LIB_NAME} minires.o librt.a: ${LIB_NAME} posix_ipc.o ${speclib} ${@F} +libacl.a: ${LIB_NAME} sec_posixacl.o + ${speclib} ${@F} + ${EXTRALIBS}: lib%.a: %.o $(AR) cru $@ $? diff --git a/winsup/cygwin/common.din b/winsup/cygwin/common.din index d7f4d24..afb81f6 100644 --- a/winsup/cygwin/common.din +++ b/winsup/cygwin/common.din @@ -117,6 +117,45 @@ accept = cygwin_accept SIGFE accept4 SIGFE access SIGFE acl SIGFE +acl_add_perm NOSIGFE +acl_calc_mask SIGFE +acl_check NOSIGFE +acl_clear_perms NOSIGFE +acl_cmp SIGFE +acl_copy_entry NOSIGFE +acl_copy_ext NOSIGFE +acl_copy_int NOSIGFE +acl_create_entry SIGFE +acl_delete_def_file SIGFE +acl_delete_entry NOSIGFE +acl_delete_perm NOSIGFE +acl_dup SIGFE +acl_entries NOSIGFE +acl_equiv_mode SIGFE +acl_error NOSIGFE +acl_extended_fd SIGFE +acl_extended_file SIGFE +acl_extended_file_nofollow SIGFE +acl_free SIGFE +acl_from_mode NOSIGFE +acl_from_text SIGFE +acl_get_entry NOSIGFE +acl_get_fd SIGFE +acl_get_file SIGFE +acl_get_perm NOSIGFE +acl_get_permset NOSIGFE +acl_get_qualifier SIGFE +acl_get_tag_type NOSIGFE +acl_init SIGFE +acl_set_fd SIGFE +acl_set_file SIGFE +acl_set_permset NOSIGFE +acl_set_q
[newlib-cygwin/topic/posix_acl_funcs] Implement POSIX.1e ACL functions
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=7cdb1269322405fca0d72ba69f64810babc7e03b commit 7cdb1269322405fca0d72ba69f64810babc7e03b Author: Corinna Vinschen Date: Wed Jan 6 18:41:36 2016 +0100 Implement POSIX.1e ACL functions * Makefile.in (DLL_OFILES): Add sec_posixacl.o. (SUBLIBS): Add libacl.a (libacl.a): New rule to create libacl.a. * common.din: Export POSIX ACL functions as well as most libacl.a extensions. * fhandler.h (fhander_base::acl_get): New prototype. (fhander_base::acl_set): Ditto. (fhandler_disk_file::acl_get): Ditto. (fhandler_disk_file::acl_set): Ditto. * include/acl/libacl.h: New file. * include/cygwin/version.h: Bump API minor version. * include/sys/acl.h: Drop including cygwin/acl.h. Accommodate throughout Cygwin. Add POSIX ACL definitions. * sec_acl.cc: Include sec_posixacl.h. Replace ILLEGAL_UID and ILLEGAL_GID with ACL_UNDEFINED_ID where sensible. (__aclcheck): New internal acl check function to be used for Solaris and POSIX ACLs. (aclcheck32): Call __aclcheck. (__aclcalcmask): New function to compute ACL_MASK value. (__aclsort): New internal acl sort function to be used for Solaris and POSIX ACLs. (aclsort32): Call __aclsort. (permtostr): Work directly on provided buffer. (__acltotext): New internal acltotext function to be used for Solaris and POSIX ACLs. (acltotext32): Call __acltotext. (__aclfromtext): New internal aclfromtext function to be used for Solaris and POSIX ACLs. (aclfromtext32): Call __aclfromtext. * sec_posixacl.cc: New file implemeting POSIX ACL functions. * sec_posixacl.h: New internal header. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/Makefile.in |6 +- winsup/cygwin/common.din | 39 ++ winsup/cygwin/fhandler.cc |2 +- winsup/cygwin/fhandler.h |5 + winsup/cygwin/fhandler_disk_file.cc|2 +- winsup/cygwin/fhandler_socket.cc |2 +- winsup/cygwin/fhandler_tty.cc |2 +- winsup/cygwin/fhandler_virtual.cc |2 +- winsup/cygwin/include/acl/libacl.h | 55 ++ winsup/cygwin/include/cygwin/version.h |3 +- winsup/cygwin/include/sys/acl.h| 85 ++- winsup/cygwin/sec_acl.cc | 768 +++ winsup/cygwin/sec_helper.cc|2 +- winsup/cygwin/sec_posixacl.cc | 1052 winsup/cygwin/sec_posixacl.h | 68 +++ winsup/cygwin/security.cc |2 +- winsup/utils/getfacl.c |3 +- winsup/utils/setfacl.c |3 +- 18 files changed, 1825 insertions(+), 276 deletions(-) diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in index 271a5be..fac9b3e 100644 --- a/winsup/cygwin/Makefile.in +++ b/winsup/cygwin/Makefile.in @@ -267,6 +267,7 @@ DLL_OFILES:= \ sec_acl.o \ sec_auth.o \ sec_helper.o \ + sec_posixacl.o \ security.o \ select.o \ sem.o \ @@ -443,7 +444,7 @@ endif API_VER:=$(srcdir)/include/cygwin/version.h LIB_NAME:=libcygwin.a -SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a +SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a libacl.a EXTRALIBS:=libautomode.a libbinmode.a libtextmode.a libtextreadmode.a INSTOBJS:=automode.o binmode.o textmode.o textreadmode.o TARGET_LIBS:=$(LIB_NAME) $(CYGWIN_START) $(GMON_START) $(LIBGMON_A) $(SUBLIBS) $(INSTOBJS) $(EXTRALIBS) @@ -643,6 +644,9 @@ libresolv.a: ${LIB_NAME} minires.o librt.a: ${LIB_NAME} posix_ipc.o ${speclib} ${@F} +libacl.a: ${LIB_NAME} sec_posixacl.o + ${speclib} ${@F} + ${EXTRALIBS}: lib%.a: %.o $(AR) cru $@ $? diff --git a/winsup/cygwin/common.din b/winsup/cygwin/common.din index d7f4d24..afb81f6 100644 --- a/winsup/cygwin/common.din +++ b/winsup/cygwin/common.din @@ -117,6 +117,45 @@ accept = cygwin_accept SIGFE accept4 SIGFE access SIGFE acl SIGFE +acl_add_perm NOSIGFE +acl_calc_mask SIGFE +acl_check NOSIGFE +acl_clear_perms NOSIGFE +acl_cmp SIGFE +acl_copy_entry NOSIGFE +acl_copy_ext NOSIGFE +acl_copy_int NOSIGFE +acl_create_entry SIGFE +acl_delete_def_file SIGFE +acl_delete_entry NOSIGFE +acl_delete_perm NOSIGFE +acl_dup SIGFE +acl_entries NOSIGFE +acl_equiv_mode SIGFE +acl_error NOSIGFE +acl_extended_fd SIGFE +acl_extended_file SIGFE +acl_extended_file_nofollow SIGFE +acl_free SIGFE +acl_from_mode NOSIGFE +acl_from_text SIGFE +acl_get_entry NOSIGFE +acl_get_fd SIGFE +acl_get_file SIGFE +acl_get_perm NOSIGFE +acl_get_permset NOSIGFE +acl_get_qualifier SIGFE +acl_get_tag_type NOSIGFE +acl_init SIGFE +acl_set_fd SIGFE +acl_set_file SIGFE +acl_set_permset NOSIGFE +acl_set_q
[newlib-cygwin/topic/posix_acl_funcs] Implement POSIX.1e ACL functions
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=4c50a2d0a8b6748ffb9c357c2e1f17f85d6f006d commit 4c50a2d0a8b6748ffb9c357c2e1f17f85d6f006d Author: Corinna Vinschen Date: Wed Jan 6 18:41:36 2016 +0100 Implement POSIX.1e ACL functions * Makefile.in (DLL_OFILES): Add sec_posixacl.o. (SUBLIBS): Add libacl.a (libacl.a): New rule to create libacl.a. * common.din: Export POSIX ACL functions as well as most libacl.a extensions. * fhandler.h (fhander_base::acl_get): New prototype. (fhander_base::acl_set): Ditto. (fhandler_disk_file::acl_get): Ditto. (fhandler_disk_file::acl_set): Ditto. * include/acl/libacl.h: New file. * include/cygwin/version.h: Bump API minor version. * include/sys/acl.h: Drop including cygwin/acl.h. Accommodate throughout Cygwin. Add POSIX ACL definitions. * sec_acl.cc: Include sec_posixacl.h. Replace ILLEGAL_UID and ILLEGAL_GID with ACL_UNDEFINED_ID where sensible. (__aclcheck): New internal acl check function to be used for Solaris and POSIX ACLs. (aclcheck32): Call __aclcheck. (__aclcalcmask): New function to compute ACL_MASK value. (__aclsort): New internal acl sort function to be used for Solaris and POSIX ACLs. (aclsort32): Call __aclsort. (permtostr): Work directly on provided buffer. (__acltotext): New internal acltotext function to be used for Solaris and POSIX ACLs. (acltotext32): Call __acltotext. (__aclfromtext): New internal aclfromtext function to be used for Solaris and POSIX ACLs. (aclfromtext32): Call __aclfromtext. * sec_posixacl.cc: New file implemeting POSIX ACL functions. * sec_posixacl.h: New internal header. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/Makefile.in |6 +- winsup/cygwin/common.din | 39 ++ winsup/cygwin/fhandler.cc |2 +- winsup/cygwin/fhandler.h |5 + winsup/cygwin/fhandler_disk_file.cc|2 +- winsup/cygwin/fhandler_socket.cc |2 +- winsup/cygwin/fhandler_tty.cc |2 +- winsup/cygwin/fhandler_virtual.cc |2 +- winsup/cygwin/include/acl/libacl.h | 55 ++ winsup/cygwin/include/cygwin/version.h |3 +- winsup/cygwin/include/sys/acl.h| 85 ++- winsup/cygwin/sec_acl.cc | 768 +++ winsup/cygwin/sec_helper.cc|2 +- winsup/cygwin/sec_posixacl.cc | 1052 winsup/cygwin/sec_posixacl.h | 68 +++ winsup/cygwin/security.cc |2 +- winsup/utils/getfacl.c |3 +- winsup/utils/setfacl.c |3 +- 18 files changed, 1825 insertions(+), 276 deletions(-) diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in index 271a5be..fac9b3e 100644 --- a/winsup/cygwin/Makefile.in +++ b/winsup/cygwin/Makefile.in @@ -267,6 +267,7 @@ DLL_OFILES:= \ sec_acl.o \ sec_auth.o \ sec_helper.o \ + sec_posixacl.o \ security.o \ select.o \ sem.o \ @@ -443,7 +444,7 @@ endif API_VER:=$(srcdir)/include/cygwin/version.h LIB_NAME:=libcygwin.a -SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a +SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a libacl.a EXTRALIBS:=libautomode.a libbinmode.a libtextmode.a libtextreadmode.a INSTOBJS:=automode.o binmode.o textmode.o textreadmode.o TARGET_LIBS:=$(LIB_NAME) $(CYGWIN_START) $(GMON_START) $(LIBGMON_A) $(SUBLIBS) $(INSTOBJS) $(EXTRALIBS) @@ -643,6 +644,9 @@ libresolv.a: ${LIB_NAME} minires.o librt.a: ${LIB_NAME} posix_ipc.o ${speclib} ${@F} +libacl.a: ${LIB_NAME} sec_posixacl.o + ${speclib} ${@F} + ${EXTRALIBS}: lib%.a: %.o $(AR) cru $@ $? diff --git a/winsup/cygwin/common.din b/winsup/cygwin/common.din index d7f4d24..afb81f6 100644 --- a/winsup/cygwin/common.din +++ b/winsup/cygwin/common.din @@ -117,6 +117,45 @@ accept = cygwin_accept SIGFE accept4 SIGFE access SIGFE acl SIGFE +acl_add_perm NOSIGFE +acl_calc_mask SIGFE +acl_check NOSIGFE +acl_clear_perms NOSIGFE +acl_cmp SIGFE +acl_copy_entry NOSIGFE +acl_copy_ext NOSIGFE +acl_copy_int NOSIGFE +acl_create_entry SIGFE +acl_delete_def_file SIGFE +acl_delete_entry NOSIGFE +acl_delete_perm NOSIGFE +acl_dup SIGFE +acl_entries NOSIGFE +acl_equiv_mode SIGFE +acl_error NOSIGFE +acl_extended_fd SIGFE +acl_extended_file SIGFE +acl_extended_file_nofollow SIGFE +acl_free SIGFE +acl_from_mode NOSIGFE +acl_from_text SIGFE +acl_get_entry NOSIGFE +acl_get_fd SIGFE +acl_get_file SIGFE +acl_get_perm NOSIGFE +acl_get_permset NOSIGFE +acl_get_qualifier SIGFE +acl_get_tag_type NOSIGFE +acl_init SIGFE +acl_set_fd SIGFE +acl_set_file SIGFE +acl_set_permset NOSIGFE +acl_set_q
[newlib-cygwin/topic/posix_acl_funcs] Implement POSIX.1e ACL functions
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=5dcf28333460f91b9f6979f5ee6cf2b3f907c96a commit 5dcf28333460f91b9f6979f5ee6cf2b3f907c96a Author: Corinna Vinschen Date: Wed Jan 6 18:41:36 2016 +0100 Implement POSIX.1e ACL functions * Makefile.in (DLL_OFILES): Add sec_posixacl.o. (SUBLIBS): Add libacl.a (libacl.a): New rule to create libacl.a. * common.din: Export POSIX ACL functions as well as most libacl.a extensions. * fhandler.h (fhander_base::acl_get): New prototype. (fhander_base::acl_set): Ditto. (fhandler_disk_file::acl_get): Ditto. (fhandler_disk_file::acl_set): Ditto. * include/acl/libacl.h: New file. * include/cygwin/version.h: Bump API minor version. * include/sys/acl.h: Drop including cygwin/acl.h. Accommodate throughout Cygwin. Add POSIX ACL definitions. * sec_acl.cc: Include sec_posixacl.h. Replace ILLEGAL_UID and ILLEGAL_GID with ACL_UNDEFINED_ID where sensible. (__aclcheck): New internal acl check function to be used for Solaris and POSIX ACLs. (aclcheck32): Call __aclcheck. (__aclcalcmask): New function to compute ACL_MASK value. (__aclsort): New internal acl sort function to be used for Solaris and POSIX ACLs. (aclsort32): Call __aclsort. (permtostr): Work directly on provided buffer. (__acltotext): New internal acltotext function to be used for Solaris and POSIX ACLs. (acltotext32): Call __acltotext. (__aclfromtext): New internal aclfromtext function to be used for Solaris and POSIX ACLs. (aclfromtext32): Call __aclfromtext. * sec_posixacl.cc: New file implemeting POSIX ACL functions. * sec_posixacl.h: New internal header. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/Makefile.in |6 +- winsup/cygwin/common.din | 39 ++ winsup/cygwin/fhandler.cc |2 +- winsup/cygwin/fhandler.h |5 + winsup/cygwin/fhandler_disk_file.cc|2 +- winsup/cygwin/fhandler_socket.cc |2 +- winsup/cygwin/fhandler_tty.cc |2 +- winsup/cygwin/fhandler_virtual.cc |2 +- winsup/cygwin/include/acl/libacl.h | 55 ++ winsup/cygwin/include/cygwin/version.h |3 +- winsup/cygwin/include/sys/acl.h| 85 ++- winsup/cygwin/sec_acl.cc | 768 +++ winsup/cygwin/sec_helper.cc|2 +- winsup/cygwin/sec_posixacl.cc | 1052 winsup/cygwin/sec_posixacl.h | 68 +++ winsup/cygwin/security.cc |2 +- winsup/utils/getfacl.c |3 +- winsup/utils/setfacl.c |3 +- 18 files changed, 1825 insertions(+), 276 deletions(-) diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in index 271a5be..fac9b3e 100644 --- a/winsup/cygwin/Makefile.in +++ b/winsup/cygwin/Makefile.in @@ -267,6 +267,7 @@ DLL_OFILES:= \ sec_acl.o \ sec_auth.o \ sec_helper.o \ + sec_posixacl.o \ security.o \ select.o \ sem.o \ @@ -443,7 +444,7 @@ endif API_VER:=$(srcdir)/include/cygwin/version.h LIB_NAME:=libcygwin.a -SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a +SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a libacl.a EXTRALIBS:=libautomode.a libbinmode.a libtextmode.a libtextreadmode.a INSTOBJS:=automode.o binmode.o textmode.o textreadmode.o TARGET_LIBS:=$(LIB_NAME) $(CYGWIN_START) $(GMON_START) $(LIBGMON_A) $(SUBLIBS) $(INSTOBJS) $(EXTRALIBS) @@ -643,6 +644,9 @@ libresolv.a: ${LIB_NAME} minires.o librt.a: ${LIB_NAME} posix_ipc.o ${speclib} ${@F} +libacl.a: ${LIB_NAME} sec_posixacl.o + ${speclib} ${@F} + ${EXTRALIBS}: lib%.a: %.o $(AR) cru $@ $? diff --git a/winsup/cygwin/common.din b/winsup/cygwin/common.din index d7f4d24..afb81f6 100644 --- a/winsup/cygwin/common.din +++ b/winsup/cygwin/common.din @@ -117,6 +117,45 @@ accept = cygwin_accept SIGFE accept4 SIGFE access SIGFE acl SIGFE +acl_add_perm NOSIGFE +acl_calc_mask SIGFE +acl_check NOSIGFE +acl_clear_perms NOSIGFE +acl_cmp SIGFE +acl_copy_entry NOSIGFE +acl_copy_ext NOSIGFE +acl_copy_int NOSIGFE +acl_create_entry SIGFE +acl_delete_def_file SIGFE +acl_delete_entry NOSIGFE +acl_delete_perm NOSIGFE +acl_dup SIGFE +acl_entries NOSIGFE +acl_equiv_mode SIGFE +acl_error NOSIGFE +acl_extended_fd SIGFE +acl_extended_file SIGFE +acl_extended_file_nofollow SIGFE +acl_free SIGFE +acl_from_mode NOSIGFE +acl_from_text SIGFE +acl_get_entry NOSIGFE +acl_get_fd SIGFE +acl_get_file SIGFE +acl_get_perm NOSIGFE +acl_get_permset NOSIGFE +acl_get_qualifier SIGFE +acl_get_tag_type NOSIGFE +acl_init SIGFE +acl_set_fd SIGFE +acl_set_file SIGFE +acl_set_permset NOSIGFE +acl_set_q
[newlib-cygwin/topic/posix_acl_funcs] Implement POSIX.1e ACL functions
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=0fc10297e3a235bd1a8546d5fb7ddea7c87f27ec commit 0fc10297e3a235bd1a8546d5fb7ddea7c87f27ec Author: Corinna Vinschen Date: Wed Jan 6 18:41:36 2016 +0100 Implement POSIX.1e ACL functions * Makefile.in (DLL_OFILES): Add sec_posixacl.o. (SUBLIBS): Add libacl.a (libacl.a): New rule to create libacl.a. * common.din: Export POSIX ACL functions as well as most libacl.a extensions. * fhandler.h (fhander_base::acl_get): New prototype. (fhander_base::acl_set): Ditto. (fhandler_disk_file::acl_get): Ditto. (fhandler_disk_file::acl_set): Ditto. * include/acl/libacl.h: New file. * include/cygwin/version.h: Bump API minor version. * include/sys/acl.h: Drop including cygwin/acl.h. Accommodate throughout Cygwin. Add POSIX ACL definitions. * sec_acl.cc: Include sec_posixacl.h. Replace ILLEGAL_UID and ILLEGAL_GID with ACL_UNDEFINED_ID where sensible. (__aclcheck): New internal acl check function to be used for Solaris and POSIX ACLs. (aclcheck32): Call __aclcheck. (__aclcalcmask): New function to compute ACL_MASK value. (__aclsort): New internal acl sort function to be used for Solaris and POSIX ACLs. (aclsort32): Call __aclsort. (permtostr): Work directly on provided buffer. (__acltotext): New internal acltotext function to be used for Solaris and POSIX ACLs. (acltotext32): Call __acltotext. (__aclfromtext): New internal aclfromtext function to be used for Solaris and POSIX ACLs. (aclfromtext32): Call __aclfromtext. * sec_posixacl.cc: New file implemeting POSIX ACL functions. * sec_posixacl.h: New internal header. Signed-off-by: Corinna Vinschen Diff: --- winsup/cygwin/Makefile.in |6 +- winsup/cygwin/common.din | 39 ++ winsup/cygwin/fhandler.cc |2 +- winsup/cygwin/fhandler.h |5 + winsup/cygwin/fhandler_disk_file.cc|2 +- winsup/cygwin/fhandler_socket.cc |2 +- winsup/cygwin/fhandler_tty.cc |2 +- winsup/cygwin/fhandler_virtual.cc |2 +- winsup/cygwin/include/acl/libacl.h | 55 ++ winsup/cygwin/include/cygwin/version.h |3 +- winsup/cygwin/include/sys/acl.h| 85 ++- winsup/cygwin/sec_acl.cc | 768 +++ winsup/cygwin/sec_helper.cc|2 +- winsup/cygwin/sec_posixacl.cc | 1052 winsup/cygwin/sec_posixacl.h | 68 +++ winsup/cygwin/security.cc |2 +- winsup/utils/getfacl.c |3 +- winsup/utils/setfacl.c |3 +- 18 files changed, 1825 insertions(+), 276 deletions(-) diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in index 271a5be..fac9b3e 100644 --- a/winsup/cygwin/Makefile.in +++ b/winsup/cygwin/Makefile.in @@ -267,6 +267,7 @@ DLL_OFILES:= \ sec_acl.o \ sec_auth.o \ sec_helper.o \ + sec_posixacl.o \ security.o \ select.o \ sem.o \ @@ -443,7 +444,7 @@ endif API_VER:=$(srcdir)/include/cygwin/version.h LIB_NAME:=libcygwin.a -SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a +SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a libacl.a EXTRALIBS:=libautomode.a libbinmode.a libtextmode.a libtextreadmode.a INSTOBJS:=automode.o binmode.o textmode.o textreadmode.o TARGET_LIBS:=$(LIB_NAME) $(CYGWIN_START) $(GMON_START) $(LIBGMON_A) $(SUBLIBS) $(INSTOBJS) $(EXTRALIBS) @@ -643,6 +644,9 @@ libresolv.a: ${LIB_NAME} minires.o librt.a: ${LIB_NAME} posix_ipc.o ${speclib} ${@F} +libacl.a: ${LIB_NAME} sec_posixacl.o + ${speclib} ${@F} + ${EXTRALIBS}: lib%.a: %.o $(AR) cru $@ $? diff --git a/winsup/cygwin/common.din b/winsup/cygwin/common.din index d7f4d24..afb81f6 100644 --- a/winsup/cygwin/common.din +++ b/winsup/cygwin/common.din @@ -117,6 +117,45 @@ accept = cygwin_accept SIGFE accept4 SIGFE access SIGFE acl SIGFE +acl_add_perm NOSIGFE +acl_calc_mask SIGFE +acl_check NOSIGFE +acl_clear_perms NOSIGFE +acl_cmp SIGFE +acl_copy_entry NOSIGFE +acl_copy_ext NOSIGFE +acl_copy_int NOSIGFE +acl_create_entry SIGFE +acl_delete_def_file SIGFE +acl_delete_entry NOSIGFE +acl_delete_perm NOSIGFE +acl_dup SIGFE +acl_entries NOSIGFE +acl_equiv_mode SIGFE +acl_error NOSIGFE +acl_extended_fd SIGFE +acl_extended_file SIGFE +acl_extended_file_nofollow SIGFE +acl_free SIGFE +acl_from_mode NOSIGFE +acl_from_text SIGFE +acl_get_entry NOSIGFE +acl_get_fd SIGFE +acl_get_file SIGFE +acl_get_perm NOSIGFE +acl_get_permset NOSIGFE +acl_get_qualifier SIGFE +acl_get_tag_type NOSIGFE +acl_init SIGFE +acl_set_fd SIGFE +acl_set_file SIGFE +acl_set_permset NOSIGFE +acl_set_q