Changeset bcdce02 in rtems-libbsd for freebsd/sys/kern/uipc_syscalls.c


Ignore:
Timestamp:
Aug 21, 2018, 11:47:02 AM (2 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
b96abfd647154f10ea8f7fac68e25676636eded5, debc0aed8b9bef9996b8ec0ae7a70b0b41912e27, 68e79b6d187fe09b0a6f3f1d22c69b4121a3f76e, 33bfaee89aa71d2252eb48d6b9a9ec17183faced
Children:
baf1ca7
Parents:
2df56db
git-author:
Sebastian Huber <sebastian.huber@…> (08/21/18 11:47:02)
git-committer:
Sebastian Huber <sebastian.huber@…> (09/21/18 08:29:41)
Message:

Update to FreeBSD head 2018-06-01

Git mirror commit fb63610a69b0eb7f69a201ba05c4c1a7a2739cf9.

Update #3472.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freebsd/sys/kern/uipc_syscalls.c

    r2df56db rbcdce02  
    4040#include <rtems/bsd/local/opt_inet.h>
    4141#include <rtems/bsd/local/opt_inet6.h>
    42 #include <rtems/bsd/local/opt_compat.h>
    4342#include <rtems/bsd/local/opt_ktrace.h>
    4443
     
    301300        struct socket *so;
    302301        struct file *fp;
    303         cap_rights_t rights;
    304         int error;
     302        int error;
     303
     304#ifdef CAPABILITY_MODE
     305        if (IN_CAPABILITY_MODE(td) && (dirfd == AT_FDCWD))
     306                return (ECAPMODE);
     307#endif
    305308
    306309        AUDIT_ARG_FD(fd);
    307310        AUDIT_ARG_SOCKADDR(td, dirfd, sa);
    308         error = getsock_cap(td, fd, cap_rights_init(&rights, CAP_BIND),
     311        error = getsock_cap(td, fd, &cap_bind_rights,
    309312            &fp, NULL, NULL);
    310313        if (error != 0)
     
    365368        struct socket *so;
    366369        struct file *fp;
    367         cap_rights_t rights;
    368370        int error;
    369371
    370372        AUDIT_ARG_FD(s);
    371         error = getsock_cap(td, s, cap_rights_init(&rights, CAP_LISTEN),
     373        error = getsock_cap(td, s, &cap_listen_rights,
    372374            &fp, NULL, NULL);
    373375        if (error == 0) {
     
    494496        struct socket *head, *so;
    495497        struct filecaps fcaps;
    496         cap_rights_t rights;
    497498        u_int fflag;
    498499        pid_t pgid;
     
    503504
    504505        AUDIT_ARG_FD(s);
    505         error = getsock_cap(td, s, cap_rights_init(&rights, CAP_ACCEPT),
     506        error = getsock_cap(td, s, &cap_accept_rights,
    506507            &headfp, &fflag, &fcaps);
    507508        if (error != 0)
     
    693694        struct socket *so;
    694695        struct file *fp;
    695         cap_rights_t rights;
    696696        int error, interrupted = 0;
     697
     698#ifdef CAPABILITY_MODE
     699        if (IN_CAPABILITY_MODE(td) && (dirfd == AT_FDCWD))
     700                return (ECAPMODE);
     701#endif
    697702
    698703        AUDIT_ARG_FD(fd);
    699704        AUDIT_ARG_SOCKADDR(td, dirfd, sa);
    700         error = getsock_cap(td, fd, cap_rights_init(&rights, CAP_CONNECT),
     705        error = getsock_cap(td, fd, &cap_connect_rights,
    701706            &fp, NULL, NULL);
    702707        if (error != 0)
     
    987992        struct socket *so;
    988993#ifndef __rtems__
    989         cap_rights_t rights;
     994        cap_rights_t *rights;
    990995#endif /* __rtems__ */
    991996#ifdef KTRACE
     
    9971002        AUDIT_ARG_FD(s);
    9981003#ifndef __rtems__
     1004        rights = &cap_send_rights;
    9991005        cap_rights_init(&rights, CAP_SEND);
    10001006        if (mp->msg_name != NULL) {
    10011007                AUDIT_ARG_SOCKADDR(td, AT_FDCWD, mp->msg_name);
    1002                 cap_rights_set(&rights, CAP_CONNECT);
    1003         }
    1004 #endif /* __rtems__ */
    1005         error = getsock_cap(td, s, &rights, &fp, NULL, NULL);
     1008                rights = &cap_send_connect_rights;
     1009        }
     1010#endif /* __rtems__ */
     1011        error = getsock_cap(td, s, rights, &fp, NULL, NULL);
    10061012        if (error != 0) {
    10071013                m_freem(control);
     
    12601266        struct socket *so;
    12611267        struct sockaddr *fromsa = NULL;
    1262         cap_rights_t rights;
    12631268#ifdef KTRACE
    12641269        struct uio *ktruio = NULL;
     
    12711276
    12721277        AUDIT_ARG_FD(s);
    1273         error = getsock_cap(td, s, cap_rights_init(&rights, CAP_RECV),
     1278        error = getsock_cap(td, s, &cap_recv_rights,
    12741279            &fp, NULL, NULL);
    12751280        if (error != 0)
     
    16141619        struct socket *so;
    16151620        struct file *fp;
    1616         cap_rights_t rights;
    16171621        int error;
    16181622
    16191623        AUDIT_ARG_FD(s);
    1620         error = getsock_cap(td, s, cap_rights_init(&rights, CAP_SHUTDOWN),
     1624        error = getsock_cap(td, s, &cap_shutdown_rights,
    16211625            &fp, NULL, NULL);
    16221626        if (error == 0) {
     
    16971701        struct file *fp;
    16981702        struct sockopt sopt;
    1699         cap_rights_t rights;
    17001703        int error;
    17011704
     
    17221725
    17231726        AUDIT_ARG_FD(s);
    1724         error = getsock_cap(td, s, cap_rights_init(&rights, CAP_SETSOCKOPT),
     1727        error = getsock_cap(td, s, &cap_setsockopt_rights,
    17251728            &fp, NULL, NULL);
    17261729        if (error == 0) {
     
    17931796        struct file *fp;
    17941797        struct sockopt sopt;
    1795         cap_rights_t rights;
    17961798        int error;
    17971799
     
    18181820
    18191821        AUDIT_ARG_FD(s);
    1820         error = getsock_cap(td, s, cap_rights_init(&rights, CAP_GETSOCKOPT),
     1822        error = getsock_cap(td, s, &cap_getsockopt_rights,
    18211823            &fp, NULL, NULL);
    18221824        if (error == 0) {
     
    18931895        struct socket *so;
    18941896        struct file *fp;
    1895         cap_rights_t rights;
    18961897        socklen_t len;
    18971898        int error;
    18981899
    18991900        AUDIT_ARG_FD(fd);
    1900         error = getsock_cap(td, fd, cap_rights_init(&rights, CAP_GETSOCKNAME),
     1901        error = getsock_cap(td, fd, &cap_getsockname_rights,
    19011902            &fp, NULL, NULL);
    19021903        if (error != 0)
     
    20092010        struct socket *so;
    20102011        struct file *fp;
    2011         cap_rights_t rights;
    20122012        socklen_t len;
    20132013        int error;
    20142014
    20152015        AUDIT_ARG_FD(fd);
    2016         error = getsock_cap(td, fd, cap_rights_init(&rights, CAP_GETPEERNAME),
     2016        error = getsock_cap(td, fd, &cap_getpeername_rights,
    20172017            &fp, NULL, NULL);
    20182018        if (error != 0)
Note: See TracChangeset for help on using the changeset viewer.