Author: avg
Date: Mon Feb 17 13:11:27 2014
New Revision: 262049
URL: http://svnweb.freebsd.org/changeset/base/262049

Log:
  MFC r258291: change the ioctl definition so that the fasttrap ioctl
  handler is responsible for copying in userland data

Modified:
  stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
  stable/9/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)

Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
==============================================================================
--- stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c  Mon Feb 
17 13:11:15 2014        (r262048)
+++ stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c  Mon Feb 
17 13:11:27 2014        (r262049)
@@ -2056,20 +2056,16 @@ fasttrap_ioctl(struct cdev *dev, u_long 
                return (EAGAIN);
 
        if (cmd == FASTTRAPIOC_MAKEPROBE) {
-               fasttrap_probe_spec_t *uprobe = (void *)arg;
+               fasttrap_probe_spec_t *uprobe = *(fasttrap_probe_spec_t **)arg;
                fasttrap_probe_spec_t *probe;
                uint64_t noffs;
                size_t size;
                int ret;
                char *c;
 
-#if defined(sun)
                if (copyin(&uprobe->ftps_noffs, &noffs,
                    sizeof (uprobe->ftps_noffs)))
                        return (EFAULT);
-#else
-               noffs = uprobe->ftps_noffs;
-#endif
 
                /*
                 * Probes must have at least one tracepoint.
@@ -2085,19 +2081,10 @@ fasttrap_ioctl(struct cdev *dev, u_long 
 
                probe = kmem_alloc(size, KM_SLEEP);
 
-#if defined(sun)
                if (copyin(uprobe, probe, size) != 0) {
                        kmem_free(probe, size);
                        return (EFAULT);
                }
-#else
-               memcpy(probe, uprobe, sizeof(*probe));
-               if (noffs > 1 && copyin(uprobe + 1, probe + 1, size) != 0) {
-                       kmem_free(probe, size);
-                       return (EFAULT);
-               }
-#endif
-
 
                /*
                 * Verify that the function and module strings contain no

Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h
==============================================================================
--- stable/9/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h     Mon Feb 
17 13:11:15 2014        (r262048)
+++ stable/9/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h     Mon Feb 
17 13:11:27 2014        (r262049)
@@ -42,8 +42,8 @@ extern "C" {
 #define        FASTTRAPIOC_MAKEPROBE   (FASTTRAPIOC | 1)
 #define        FASTTRAPIOC_GETINSTR    (FASTTRAPIOC | 2)
 #else
-#define        FASTTRAPIOC_MAKEPROBE   _IOW('f', 1, fasttrap_probe_spec_t)
 #define        FASTTRAPIOC_GETINSTR    _IOWR('f', 2, uint8_t)
+#define        FASTTRAPIOC_MAKEPROBE   _IO('f', 3)
 #endif
 
 typedef enum fasttrap_probe_type {
_______________________________________________
svn-src-stable-9@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"

Reply via email to