Author: hrs
Date: Tue Jun  9 02:27:59 2009
New Revision: 193796
URL: http://svn.freebsd.org/changeset/base/193796

Log:
  - Fix sanity check of GIFSOPTS ioctl.
  - Rename option mask s/GIF_FULLOPTS/GIF_OPTMASK/
  
  Spotted by:   Eygene Ryabinkin, delphij

Modified:
  head/sys/net/if_gif.c
  head/sys/net/if_gif.h

Modified: head/sys/net/if_gif.c
==============================================================================
--- head/sys/net/if_gif.c       Tue Jun  9 01:43:58 2009        (r193795)
+++ head/sys/net/if_gif.c       Tue Jun  9 02:27:59 2009        (r193796)
@@ -912,10 +912,10 @@ gif_ioctl(ifp, cmd, data)
        case GIFSOPTS:
                if ((error = priv_check(curthread, PRIV_NET_GIF)) != 0)
                        break;
-               if ((error = copyin(&options, &sc->gif_options,
-                               sizeof(sc->gif_options)))) {
-                       if ((options | GIF_FULLOPTS) == GIF_FULLOPTS)
-                               ifr->ifr_data = (caddr_t)options;
+               if (!(error = copyin(ifr->ifr_data, &options,
+                               sizeof(options)))) {
+                       if ((options | GIF_OPTMASK) == GIF_OPTMASK)
+                               sc->gif_options = options;
                        else
                                error = EINVAL;
                }

Modified: head/sys/net/if_gif.h
==============================================================================
--- head/sys/net/if_gif.h       Tue Jun  9 01:43:58 2009        (r193795)
+++ head/sys/net/if_gif.h       Tue Jun  9 02:27:59 2009        (r193796)
@@ -150,11 +150,11 @@ extern struct vnet_gif vnet_gif_0;
 
 #endif /* _KERNEL */
 
-#define GIFGOPTS       _IOR('i', 150, struct ifreq)
+#define GIFGOPTS       _IOWR('i', 150, struct ifreq)
 #define GIFSOPTS       _IOW('i', 151, struct ifreq)
 
 #define        GIF_ACCEPT_REVETHIP     0x0001
 #define        GIF_SEND_REVETHIP       0x0010
-#define        GIF_FULLOPTS            (GIF_ACCEPT_REVETHIP|GIF_SEND_REVETHIP)
+#define        GIF_OPTMASK             (GIF_ACCEPT_REVETHIP|GIF_SEND_REVETHIP)
 
 #endif /* _NET_IF_GIF_H_ */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to