From owner-p4-projects@FreeBSD.ORG Fri Oct 24 22:17:11 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E901B1065676; Fri, 24 Oct 2008 22:17:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 944F5106566B for ; Fri, 24 Oct 2008 22:17:10 +0000 (UTC) (envelope-from peter-gmail@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 827DF8FC0C for ; Fri, 24 Oct 2008 22:17:10 +0000 (UTC) (envelope-from peter-gmail@wemm.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m9OMHAWv015722 for ; Fri, 24 Oct 2008 22:17:10 GMT (envelope-from peter-gmail@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m9OMHAZq015720 for perforce@freebsd.org; Fri, 24 Oct 2008 22:17:10 GMT (envelope-from peter-gmail@wemm.org) Date: Fri, 24 Oct 2008 22:17:10 GMT Message-Id: <200810242217.m9OMHAZq015720@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter-gmail@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 151882 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Oct 2008 22:17:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=151882 Change 151882 by peter@peter_cheese on 2008/10/24 22:16:53 wrap acl syscalls (bsdtar uses them) Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#8 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#15 edit .. //depot/projects/valgrind/include/vki/vki-freebsd.h#5 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#8 (text+ko) ==== @@ -184,6 +184,10 @@ DECL_TEMPLATE(freebsd, sys___acl_delete_fd); DECL_TEMPLATE(freebsd, sys___acl_aclcheck_file); DECL_TEMPLATE(freebsd, sys___acl_aclcheck_fd); +DECL_TEMPLATE(freebsd, sys___acl_get_link); +DECL_TEMPLATE(freebsd, sys___acl_set_link); +DECL_TEMPLATE(freebsd, sys___acl_delete_link); +DECL_TEMPLATE(freebsd, sys___acl_aclcheck_link); DECL_TEMPLATE(freebsd, sys_extattrctl); DECL_TEMPLATE(freebsd, sys_extattr_set_file); DECL_TEMPLATE(freebsd, sys_extattr_get_file); ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#15 (text+ko) ==== @@ -2508,6 +2508,127 @@ PRE_MEM_RASCIIZ( "faccessat(pathname)", ARG2 ); } +/* --------------------------------------------------------------------- + __acl* wrappers + ------------------------------------------------------------------ */ + +PRE(sys___acl_get_file) +{ + PRINT("sys___acl_get_file ( %#lx(%s), %ld, %#lx )", ARG1,(char *)ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_get_file", + const char *, path, int, acltype, struct vki_acl *, aclp); + PRE_MEM_WRITE( "__acl_get_file(aclp)", ARG3, sizeof(struct vki_acl) ); +} + +POST(sys___acl_get_file) +{ + vg_assert(SUCCESS); + if (RES == 0) { + POST_MEM_WRITE( ARG3, sizeof(struct vki_acl) ); + } +} + +PRE(sys___acl_set_file) +{ + PRINT("sys___acl_set_file ( %#lx(%s), %ld, %#lx )", ARG1,(char *)ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_set_file", + const char *, path, int, acltype, struct vki_acl *, aclp); + PRE_MEM_READ( "__acl_set_file(aclp)", ARG3, sizeof(struct vki_acl) ); +} + +PRE(sys___acl_get_fd) +{ + PRINT("sys___acl_get_fd ( %ld, %ld, %#lx )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_get_fd", + int, fd, int, acltype, struct vki_acl *, aclp); + PRE_MEM_WRITE( "__acl_get_file(aclp)", ARG3, sizeof(struct vki_acl) ); +} + +POST(sys___acl_get_fd) +{ + vg_assert(SUCCESS); + if (RES == 0) { + POST_MEM_WRITE( ARG3, sizeof(struct vki_acl) ); + } +} + +PRE(sys___acl_set_fd) +{ + PRINT("sys___acl_set_fd ( %ld, %ld, %#lx )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_set_fd", + int, fd, int, acltype, struct vki_acl *, aclp); + PRE_MEM_READ( "__acl_get_file(aclp)", ARG3, sizeof(struct vki_acl) ); +} + +PRE(sys___acl_delete_file) +{ + PRINT("sys___acl_delete_file ( %#lx(%s), %ld )", ARG1,(char *)ARG1,ARG2); + PRE_REG_READ2(long, "__acl_delete_file", + const char *, path, int, acltype); +} + +PRE(sys___acl_delete_fd) +{ + PRINT("sys___acl_delete_fd ( %ld, %ld )", ARG1,ARG2); + PRE_REG_READ2(long, "__acl_delete_fd", + int, fd, int, acltype); +} + +PRE(sys___acl_aclcheck_file) +{ + PRINT("sys___acl_aclcheck_file ( %#lx(%s), %ld, %#lx )", ARG1,(char *)ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_aclcheck_file", + const char *, path, int, acltype, struct vki_acl *, aclp); + PRE_MEM_READ( "__acl_aclcheck_file(aclp)", ARG3, sizeof(struct vki_acl) ); +} + +PRE(sys___acl_aclcheck_fd) +{ + PRINT("sys___acl_aclcheck_fd ( %ld, %ld, %#lx )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_aclcheck_fd", + int, fd, int, acltype, struct vki_acl *, aclp); + PRE_MEM_READ( "__acl_aclcheck_fd(aclp)", ARG3, sizeof(struct vki_acl) ); +} + +PRE(sys___acl_get_link) +{ + PRINT("sys___acl_get_link ( %#lx(%s), %ld, %#lx )", ARG1,(char *)ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_get_link", + const char *, path, int, acltype, struct vki_acl *, aclp); + PRE_MEM_WRITE( "__acl_get_link(aclp)", ARG3, sizeof(struct vki_acl) ); +} + +POST(sys___acl_get_link) +{ + vg_assert(SUCCESS); + if (RES == 0) { + POST_MEM_WRITE( ARG3, sizeof(struct vki_acl) ); + } +} + +PRE(sys___acl_set_link) +{ + PRINT("sys___acl_set_link ( %#lx(%s), %ld, %#lx )", ARG1,(char *)ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_set_link", + const char *, path, int, acltype, struct vki_acl *, aclp); + PRE_MEM_READ( "__acl_set_link(aclp)", ARG3, sizeof(struct vki_acl) ); +} + +PRE(sys___acl_delete_link) +{ + PRINT("sys___acl_delete_link ( %#lx(%s), %ld )", ARG1,(char *)ARG1,ARG2); + PRE_REG_READ2(long, "__acl_delete_link", + const char *, path, int, acltype); +} + +PRE(sys___acl_aclcheck_link) +{ + PRINT("sys___acl_aclcheck_link ( %#lx(%s), %ld, %#lx )", ARG1,(char *)ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "__acl_aclcheck_link", + const char *, path, int, acltype, struct vki_acl *, aclp); + PRE_MEM_READ( "__acl_aclcheck_link(aclp)", ARG3, sizeof(struct vki_acl) ); +} + #undef PRE #undef POST @@ -2945,16 +3066,16 @@ BSDX_(__NR_sigreturn, sys_sigreturn), // 344 BSDXY(__NR_sigtimedwait, sys_sigtimedwait), // 345 BSDXY(__NR_sigwaitinfo, sys_sigwaitinfo), // 346 - // BSDXY(__NR___acl_get_file, sys___acl_get_file), // 347 + BSDXY(__NR___acl_get_file, sys___acl_get_file), // 347 - // BSDXY(__NR___acl_set_file, sys___acl_set_file), // 348 - // BSDXY(__NR___acl_get_fd, sys___acl_get_fd), // 349 - // BSDXY(__NR___acl_set_fd, sys___acl_set_fd), // 350 - // BSDXY(__NR___acl_delete_file, sys___acl_delete_file), // 351 + BSDX_(__NR___acl_set_file, sys___acl_set_file), // 348 + BSDXY(__NR___acl_get_fd, sys___acl_get_fd), // 349 + BSDX_(__NR___acl_set_fd, sys___acl_set_fd), // 350 + BSDX_(__NR___acl_delete_file, sys___acl_delete_file), // 351 - // BSDXY(__NR___acl_delete_fd, sys___acl_delete_fd), // 352 - // BSDXY(__NR___acl_aclcheck_file, sys___acl_aclcheck_file), // 353 - // BSDXY(__NR___acl_aclcheck_fd, sys___acl_aclcheck_fd), // 354 + BSDX_(__NR___acl_delete_fd, sys___acl_delete_fd), // 352 + BSDX_(__NR___acl_aclcheck_file, sys___acl_aclcheck_file), // 353 + BSDX_(__NR___acl_aclcheck_fd, sys___acl_aclcheck_fd), // 354 // BSDXY(__NR_extattrctl, sys_extattrctl), // 355 // BSDXY(__NR_extattr_set_file, sys_extattr_set_file), // 356 @@ -3043,11 +3164,11 @@ // swapcontext 423 // swapoff 424 - // __acl_get_link 425 - // __acl_set_link 426 - // __acl_delete_link 427 + BSDXY(__NR___acl_get_link, sys___acl_get_link), // 425 + BSDX_(__NR___acl_set_link, sys___acl_set_link), // 426 + BSDX_(__NR___acl_delete_link, sys___acl_delete_link), // 427 - // __acl_aclcheck_link 428 + BSDX_(__NR___acl_aclcheck_link, sys___acl_aclcheck_link), // 428 //!sigwait 429 // thr_create 430 // thr_exit 431 ==== //depot/projects/valgrind/include/vki/vki-freebsd.h#5 (text+ko) ==== @@ -1710,6 +1710,22 @@ #define VKI_UMTX_OP_MAX 11 +//---------------------------------------------------------------------- +// From sys/acl.h +//---------------------------------------------------------------------- + +struct vki_acl_entry { + int ae_tag; + vki_uid_t ae_uid; + vki_mode_t ae_perm; +}; + +#define VKI_ACL_MAX_ENTRIES 32 +struct vki_acl { + int acl_cnt; + struct vki_acl_entry acl_entry[VKI_ACL_MAX_ENTRIES]; +}; + /*--------------------------------------------------------------------*/ /*--- end ---*/ /*--------------------------------------------------------------------*/