use new form of suser()
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Thu, 27 Apr 1989 09:56:19 +0000 (01:56 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Thu, 27 Apr 1989 09:56:19 +0000 (01:56 -0800)
SCCS-vsn: sys/netiso/iso.c 7.3
SCCS-vsn: sys/netiso/iso_snpac.c 7.3
SCCS-vsn: sys/netinet/in.c 7.11
SCCS-vsn: sys/net/if.c 7.7
SCCS-vsn: sys/net/if_sl.c 7.13
SCCS-vsn: sys/net/route.c 7.11

usr/src/sys/net/if.c
usr/src/sys/net/if_sl.c
usr/src/sys/net/route.c
usr/src/sys/netinet/in.c
usr/src/sys/netiso/iso.c

index a265280..3f3267d 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)if.c        7.6.1.1 (Berkeley) %G%
+ *     @(#)if.c        7.7 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -285,6 +285,7 @@ ifioctl(so, cmd, data)
 {
        register struct ifnet *ifp;
        register struct ifreq *ifr;
 {
        register struct ifnet *ifp;
        register struct ifreq *ifr;
+       int error;
 
        switch (cmd) {
 
 
        switch (cmd) {
 
@@ -295,8 +296,8 @@ ifioctl(so, cmd, data)
 #if defined(INET) && NETHER > 0
        case SIOCSARP:
        case SIOCDARP:
 #if defined(INET) && NETHER > 0
        case SIOCSARP:
        case SIOCDARP:
-               if (!suser())
-                       return (u.u_error);
+               if (error = suser(u.u_cred, &u.u_acflag))
+                       return (error);
                /* FALL THROUGH */
        case SIOCGARP:
        case OSIOCGARP:
                /* FALL THROUGH */
        case SIOCGARP:
        case OSIOCGARP:
@@ -318,8 +319,8 @@ ifioctl(so, cmd, data)
                break;
 
        case SIOCSIFFLAGS:
                break;
 
        case SIOCSIFFLAGS:
-               if (!suser())
-                       return (u.u_error);
+               if (error = suser(u.u_cred, &u.u_acflag))
+                       return (error);
                if (ifp->if_flags & IFF_UP && (ifr->ifr_flags & IFF_UP) == 0) {
                        int s = splimp();
                        if_down(ifp);
                if (ifp->if_flags & IFF_UP && (ifr->ifr_flags & IFF_UP) == 0) {
                        int s = splimp();
                        if_down(ifp);
@@ -332,8 +333,8 @@ ifioctl(so, cmd, data)
                break;
 
        case SIOCSIFMETRIC:
                break;
 
        case SIOCSIFMETRIC:
-               if (!suser())
-                       return (u.u_error);
+               if (error = suser(u.u_cred, &u.u_acflag))
+                       return (error);
                ifp->if_metric = ifr->ifr_metric;
                break;
 
                ifp->if_metric = ifr->ifr_metric;
                break;
 
index c1091fb..612ce51 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)if_sl.c     7.12 (Berkeley) %G%
+ *     @(#)if_sl.c     7.13 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -125,9 +125,10 @@ slopen(dev, tp)
 {
        register struct sl_softc *sc;
        register int nsl;
 {
        register struct sl_softc *sc;
        register int nsl;
+       int error;
 
 
-       if (!suser())
-               return (EPERM);
+       if (error = suser(u.u_cred, &u.u_acflag))
+               return (error);
        if (tp->t_line == SLIPDISC)
                return (EBUSY);
 
        if (tp->t_line == SLIPDISC)
                return (EBUSY);
 
index 2bf3fb6..3dad693 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)route.c     7.10 (Berkeley) %G%
+ *     @(#)route.c     7.11 (Berkeley) %G%
  */
 #include "machine/reg.h"
  
  */
 #include "machine/reg.h"
  
@@ -224,8 +224,8 @@ rtioctl(req, data)
        else
                return (EINVAL);
 
        else
                return (EINVAL);
 
-       if (!suser())
-               return (u.u_error);
+       if (error = suser(u.u_cred, &u.u_acflag))
+               return (error);
 #if BYTE_ORDER != BIG_ENDIAN
        if (entry->rt_dst.sa_family == 0 && entry->rt_dst.sa_len < 16) {
                entry->rt_dst.sa_family = entry->rt_dst.sa_len;
 #if BYTE_ORDER != BIG_ENDIAN
        if (entry->rt_dst.sa_family == 0 && entry->rt_dst.sa_len < 16) {
                entry->rt_dst.sa_family = entry->rt_dst.sa_len;
index 1793dba..648a9d9 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)in.c        7.10 (Berkeley) %G%
+ *     @(#)in.c        7.11 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -268,8 +268,8 @@ in_control(so, cmd, data, ifp)
        case SIOCSIFADDR:
        case SIOCSIFNETMASK:
        case SIOCSIFDSTADDR:
        case SIOCSIFADDR:
        case SIOCSIFNETMASK:
        case SIOCSIFDSTADDR:
-               if (!suser())
-                       return (u.u_error);
+               if (error = suser(u.u_cred, &u.u_acflag))
+                       return (error);
 
                if (ifp == 0)
                        panic("in_control");
 
                if (ifp == 0)
                        panic("in_control");
@@ -307,8 +307,8 @@ in_control(so, cmd, data, ifp)
                break;
 
        case SIOCSIFBRDADDR:
                break;
 
        case SIOCSIFBRDADDR:
-               if (!suser())
-                       return (u.u_error);
+               if (error = suser(u.u_cred, &u.u_acflag))
+                       return (error);
                /* FALLTHROUGH */
 
        default:
                /* FALLTHROUGH */
 
        default:
index 38ea738..9e73bf0 100644 (file)
@@ -27,7 +27,7 @@ SOFTWARE.
 /*
  * $Header: iso.c,v 4.11 88/09/19 14:58:35 root Exp $ 
  * $Source: /usr/argo/sys/netiso/RCS/iso.c,v $ 
 /*
  * $Header: iso.c,v 4.11 88/09/19 14:58:35 root Exp $ 
  * $Source: /usr/argo/sys/netiso/RCS/iso.c,v $ 
- *     @(#)iso.c       7.2 (Berkeley) %G%
+ *     @(#)iso.c       7.3 (Berkeley) %G%
  *
  * iso.c: miscellaneous routines to support the iso address family
  */
  *
  * iso.c: miscellaneous routines to support the iso address family
  */
@@ -440,8 +440,8 @@ iso_control(so, cmd, data, ifp)
                            SAME_ISOADDR(&ia->ia_addr, &ifra->ifra_addr))
                                break;
                }
                            SAME_ISOADDR(&ia->ia_addr, &ifra->ifra_addr))
                                break;
                }
-               if (!suser())
-                       return (u.u_error);
+               if (error = suser(u.u_cred, &u.u_acflag))
+                       return (error);
                if (ifp == 0)
                        panic("iso_control");
                if (ia == (struct iso_ifaddr *)0) {
                if (ifp == 0)
                        panic("iso_control");
                if (ia == (struct iso_ifaddr *)0) {