From owner-svn-src-head@FreeBSD.ORG Thu Mar 21 23:07:05 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 7310F738; Thu, 21 Mar 2013 23:07:05 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 659B1FA; Thu, 21 Mar 2013 23:07:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2LN752A065001; Thu, 21 Mar 2013 23:07:05 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2LN74G1064998; Thu, 21 Mar 2013 23:07:04 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201303212307.r2LN74G1064998@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Thu, 21 Mar 2013 23:07:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r248603 - in head/tools/regression: pjdfstest security/cap_test X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2013 23:07:05 -0000 Author: pjd Date: Thu Mar 21 23:07:04 2013 New Revision: 248603 URL: http://svnweb.freebsd.org/changeset/base/248603 Log: Update regression tests after adding chflagsat(2). Sponsored by: The FreeBSD Foundation Modified: head/tools/regression/pjdfstest/Makefile head/tools/regression/pjdfstest/pjdfstest.c head/tools/regression/security/cap_test/cap_test_capabilities.c Modified: head/tools/regression/pjdfstest/Makefile ============================================================================== --- head/tools/regression/pjdfstest/Makefile Thu Mar 21 23:06:11 2013 (r248602) +++ head/tools/regression/pjdfstest/Makefile Thu Mar 21 23:07:04 2013 (r248603) @@ -6,7 +6,7 @@ ${PROG}: ${PROG}.c @OSTYPE=`uname`; \ CFLAGS=-D__OS_$${OSTYPE}__; \ if [ $$OSTYPE = "FreeBSD" ]; then \ - CFLAGS="$$CFLAGS -DHAS_LCHMOD -DHAS_CHFLAGS -DHAS_FCHFLAGS -DHAS_LCHFLAGS -DHAS_FREEBSD_ACL -DHAS_BINDAT -DHAS_CONNECTAT"; \ + CFLAGS="$$CFLAGS -DHAS_LCHMOD -DHAS_CHFLAGS -DHAS_FCHFLAGS -DHAS_CHFLAGSAT -DHAS_LCHFLAGS -DHAS_FREEBSD_ACL -DHAS_BINDAT -DHAS_CONNECTAT"; \ elif [ $$OSTYPE = "SunOS" ]; then \ CFLAGS="$$CFLAGS -DHAS_TRUNCATE64 -DHAS_STAT64"; \ CFLAGS="$$CFLAGS -lsocket"; \ Modified: head/tools/regression/pjdfstest/pjdfstest.c ============================================================================== --- head/tools/regression/pjdfstest/pjdfstest.c Thu Mar 21 23:06:11 2013 (r248602) +++ head/tools/regression/pjdfstest/pjdfstest.c Thu Mar 21 23:07:04 2013 (r248603) @@ -105,6 +105,9 @@ enum action { #ifdef HAS_FCHFLAGS ACTION_FCHFLAGS, #endif +#ifdef HAS_CHFLAGSAT + ACTION_CHFLAGSAT, +#endif #ifdef HAS_LCHFLAGS ACTION_LCHFLAGS, #endif @@ -183,6 +186,9 @@ static struct syscall_desc syscalls[] = #ifdef HAS_FCHFLAGS { "fchflags", ACTION_FCHFLAGS, { TYPE_DESCRIPTOR, TYPE_STRING, TYPE_NONE } }, #endif +#ifdef HAS_CHFLAGSAT + { "chflagsat", ACTION_CHFLAGSAT, { TYPE_DESCRIPTOR, TYPE_STRING, TYPE_STRING, TYPE_STRING, TYPE_NONE } }, +#endif #ifdef HAS_LCHFLAGS { "lchflags", ACTION_LCHFLAGS, { TYPE_STRING, TYPE_STRING, TYPE_NONE } }, #endif @@ -306,6 +312,11 @@ static struct flag linkat_flags[] = { { 0, NULL } }; +static struct flag chflagsat_flags[] = { + { AT_SYMLINK_NOFOLLOW, "AT_SYMLINK_NOFOLLOW" }, + { 0, NULL } +}; + static struct flag fchmodat_flags[] = { { AT_SYMLINK_NOFOLLOW, "AT_SYMLINK_NOFOLLOW" }, { 0, NULL } @@ -829,6 +840,13 @@ call_syscall(struct syscall_desc *scall, (unsigned long)str2flags(chflags_flags, STR(1))); break; #endif +#ifdef HAS_CHFLAGSAT + case ACTION_CHFLAGSAT: + rval = chflagsat(NUM(0), STR(1), + (unsigned long)str2flags(chflags_flags, STR(2)), + (int)str2flags(chflagsat_flags, STR(3))); + break; +#endif #ifdef HAS_LCHFLAGS case ACTION_LCHFLAGS: rval = lchflags(STR(0), Modified: head/tools/regression/security/cap_test/cap_test_capabilities.c ============================================================================== --- head/tools/regression/security/cap_test/cap_test_capabilities.c Thu Mar 21 23:06:11 2013 (r248602) +++ head/tools/regression/security/cap_test/cap_test_capabilities.c Thu Mar 21 23:07:04 2013 (r248603) @@ -293,14 +293,12 @@ try_file_ops(int filefd, int dirfd, cap_ CHECK_RESULT(fchflags, CAP_FCHFLAGS, ret == 0 || (is_nfs && errno == EOPNOTSUPP)); -#ifdef TODO /* No such syscalls yet. */ - ret = openat(dirfd, "cap_fchflagsat", O_CREAT, 0600); + ret = openat(dirfd, "cap_chflagsat", O_CREAT, 0600); CHECK(ret >= 0); CHECK(close(ret) == 0); - ret = fchflagsat(dfd_cap, "cap_fchflagsat", UF_NODUMP, 0); - CHECK_RESULT(fchflagsat, CAP_FCHFLAGSAT | CAP_LOOKUP, ret == 0); - CHECK(unlinkat(dirfd, "cap_fchflagsat", 0) == 0); -#endif + ret = chflagsat(dfd_cap, "cap_chflagsat", UF_NODUMP, 0); + CHECK_RESULT(chflagsat, CAP_CHFLAGSAT | CAP_LOOKUP, ret == 0); + CHECK(unlinkat(dirfd, "cap_chflagsat", 0) == 0); ret = fchown(fd_cap, -1, -1); CHECK_RESULT(fchown, CAP_FCHOWN, ret == 0);